qtableWidget设置行高度调整为内容

发布于 2025-02-03 11:17:37 字数 14050 浏览 2 评论 0原文

文件:untitled.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.gridLayout = QtWidgets.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.table = QtWidgets.QTableWidget(Dialog)
        self.table.setFocusPolicy(QtCore.Qt.NoFocus)
        self.table.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
        self.table.setEditTriggers(QtWidgets.QAbstractItemView.AllEditTriggers)
        self.table.setDragEnabled(True)
        self.table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
        self.table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectItems)
        self.table.setObjectName("table")
        self.table.setColumnCount(6)
        self.table.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(3, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(4, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(5, item)
        self.table.horizontalHeader().setDefaultSectionSize(200)
        self.table.horizontalHeader().setStretchLastSection(True)
        self.table.verticalHeader().setVisible(False)
        self.gridLayout.addWidget(self.table, 0, 0, 1, 1)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        item = self.table.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "Α/Α"))
        item = self.table.horizontalHeaderItem(1)
        item.setText(_translate("Dialog", "Είδος"))
        item = self.table.horizontalHeaderItem(2)
        item.setText(_translate("Dialog", "Τίτλος"))
        item = self.table.horizontalHeaderItem(3)
        item.setText(_translate("Dialog", "Ακολουθία λιστών αναπαραγωγής"))
        item = self.table.horizontalHeaderItem(4)
        item.setText(_translate("Dialog", "Διαδρομή / Διεύθυνση Internet"))
        item = self.table.horizontalHeaderItem(5)
        item.setText(_translate("Dialog", "Ενέργεια"))


file run_me.py

from PyQt5 import QtCore, QtWidgets, QtCore
from untitled import *
import sys

class Run_Me:
    def __init__(self):     
        self.app = QtWidgets.QApplication(sys.argv)
        self.Dialog = QtWidgets.QDialog()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self.Dialog)
        self.Dialog.showMaximized()

        self.display_table()

        sys.exit(self.app.exec_())


    def display_table(self):
        self.row_action_widgets = []
        self.ui.table.setRowCount(0)
        counter = 0
        display_result = "ok"
        #self.error_items.insert(0,self.error_items[0])

        verticalHeader = self.ui.table.verticalHeader()
        verticalHeader.setSectionResizeMode(QtWidgets.QHeaderView.Fixed)


        for row in range(0,5):
            self.ui.table.insertRow(counter)
            self.row_action_widgets.append({})
            self.display_table_row(counter)
            counter = counter + 1
            if display_result != "ok":
                break
            


        
        self.ui.table.setStyleSheet("QTableWidget{border:1px solid #ABABAB;}QTableWidget::item {border: 0px;padding: 10px 10px 10px 10px; }")       

        #self.ui.table.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
        #self.ui.table.setAlternatingRowColors(True)
        #self.ui.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.ui.table.setStyleSheet("QTableWidget::item {border: 0px;padding: 10px 10px 10px 10px; }QTableWidget{border:1px solid #ABABAB;gridline-color:green}\n\nQTableCornerButton::section{border-width: \n    1px; border-color: #BABABA; border-style:solid;border-left:none;border-top:none;}")

        
        self.ui.table.setColumnWidth(0, 90)           
        self.ui.table.setColumnWidth(1, 200)           
        self.ui.table.setColumnWidth(2, 200)           
        self.ui.table.setColumnWidth(3, 300)           
        self.ui.table.setColumnWidth(4, 200)           
        self.ui.table.setColumnWidth(5, 450)           
        
        self.ui.table.resizeRowsToContents()

    def display_table_row(self,counter):
        # Α/Α
        counter_item = QtWidgets.QTableWidgetItem(str(counter+1))
        counter_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,0,counter_item)

        # Είδος
        type_item = QtWidgets.QTableWidgetItem("Item type")
        type_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,1,type_item)

        # Τίτλος
        title_item = QtWidgets.QTableWidgetItem("Title")
        title_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,2,title_item)

        # Playlist sequence
        sequence_item = QtWidgets.QTableWidgetItem("Sequence text")
        sequence_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,3,sequence_item)

        # Url / Original path
        path_item = QtWidgets.QTableWidgetItem(str("Wrong url or wrong sound file path"))
        path_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,4,path_item)

        #Action frame
        self.row_action_widgets[counter]["groupBox"] = QtWidgets.QGroupBox(self.Dialog)
        self.row_action_widgets[counter]["groupBox"].setEnabled(True)
        #self.row_action_widgets[counter]["groupBox"].setGeometry(QtCore.QRect(10, 0, 410, 265))
        self.row_action_widgets[counter]["sizePolicy"] = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        self.row_action_widgets[counter]["sizePolicy"].setHorizontalStretch(0)
        self.row_action_widgets[counter]["sizePolicy"].setVerticalStretch(0)
        self.row_action_widgets[counter]["sizePolicy"].setHeightForWidth(self.row_action_widgets[counter]["groupBox"].sizePolicy().hasHeightForWidth())
        self.row_action_widgets[counter]["groupBox"].setSizePolicy(self.row_action_widgets[counter]["sizePolicy"])
        self.row_action_widgets[counter]["groupBox"].setCheckable(True)
        self.row_action_widgets[counter]["gridLayout"] = QtWidgets.QGridLayout(self.row_action_widgets[counter]["groupBox"])
        self.row_action_widgets[counter]["retransmition_url_frame"] = QtWidgets.QFrame(self.row_action_widgets[counter]["groupBox"])
        self.row_action_widgets[counter]["retransmition_url_frame"].setGeometry(QtCore.QRect(10, 10, 410, 225))
        self.row_action_widgets[counter]["retransmition_url_frame"].setMinimumSize(QtCore.QSize(0, 0))
        self.row_action_widgets[counter]["retransmition_url_frame"].setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.row_action_widgets[counter]["retransmition_url_frame"].setStyleSheet("QFrame{border:none;}")
        self.row_action_widgets[counter]["retransmition_url_frame"].setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.row_action_widgets[counter]["retransmition_url_frame"].setFrameShadow(QtWidgets.QFrame.Raised)
        self.row_action_widgets[counter]["gridLayout_2"] = QtWidgets.QGridLayout(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["spacerItem"] = QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        self.row_action_widgets[counter]["gridLayout_2"].addItem(self.row_action_widgets[counter]["spacerItem"], 0, 0, 1, 1)                
        self.row_action_widgets[counter]["const_url_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["const_url_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["const_url_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["const_url_lineedit"], 2, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setEnabled(False)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"], 5, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setEnabled(False)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_website_lineedit"], 4, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_radiobutton"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_radiobutton"], 3, 0, 1, 1)
        self.row_action_widgets[counter]["youtube_option"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["youtube_option"], 6, 0, 1, 1)
        self.row_action_widgets[counter]["const_url_radiobutton"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["const_url_radiobutton"].setChecked(True)
        self.row_action_widgets[counter]["const_url_radiobutton"].setAutoRepeat(False)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["const_url_radiobutton"], 1, 0, 1, 1)
        self.row_action_widgets[counter]["youtube_url"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["youtube_url"].setEnabled(False)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["youtube_url"], 7, 0, 1, 1)


        self.row_action_widgets[counter]["groupBox"].setTitle("Αντικατάσταση url αναμετάδοσης; (αν όχι τότε παράλειψη)")
        self.row_action_widgets[counter]["const_url_radiobutton"].setText("Εισαγωγή σταθερής Διεύθυνσης url stream")
        self.row_action_widgets[counter]["const_url_lineedit"].setPlaceholderText("Πληκτρολογήστε την σταθερή Διεύθυνση url stream")
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setPlaceholderText("javascript κώδικας για την εύρεση της διεύθυνσης του συνεργαζόμενου ραδιοσταθμού")
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setPlaceholderText("Πληκτρολογήστε την διεύθυνσης url web site")
        self.row_action_widgets[counter]["youtube_option"].setText("Εισαγωγή youtube live stream url")
        self.row_action_widgets[counter]["dynamic_url_radiobutton"].setText("Εισαγωγή διεύθυνσης url web site")
        self.row_action_widgets[counter]["youtube_url"].setPlaceholderText("Εισάγετε την youtube διεύθυνση internet ")



        self.row_action_widgets[counter]["groupBox"].setStyleSheet("QGroupBox{width:calc(100% - 20px)!important;height:265px!important;background-color:rgb(253, 255, 183);border:none;padding:10px}QGroupBox::title{subcontrol-origin: margin;subcontrol-position: top left;padding: 10px;}")
        self.ui.table.setCellWidget(counter,5,self.row_action_widgets[counter]["groupBox"])
        self.ui.table.itemAt(counter,5).setSizeHint(QtCore.QSize(self.row_action_widgets[counter]["retransmition_url_frame"].size().width(),265))

            #self.ui.table.setRowHeight(counter,265)
        return "ok"



if __name__ == "__main__":
    program = Run_Me()

执行:python3.10 + pyqt5:python3 run_me.py.py 结果图像:

“在此处输入图像描述”

行高度是错误的。

文件代码中的一个段落更改 run_me.py.py

line:58 same ->     def display_table_row(self,counter):
line:59 add ->          if counter>0:
line:60 add ->              return "ok"

此执行的结果:

“在此处输入图像描述”

怎么了? 还要注意显示两行时的奇怪行为。

File: untitled.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.gridLayout = QtWidgets.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.table = QtWidgets.QTableWidget(Dialog)
        self.table.setFocusPolicy(QtCore.Qt.NoFocus)
        self.table.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
        self.table.setEditTriggers(QtWidgets.QAbstractItemView.AllEditTriggers)
        self.table.setDragEnabled(True)
        self.table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
        self.table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectItems)
        self.table.setObjectName("table")
        self.table.setColumnCount(6)
        self.table.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(3, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(4, item)
        item = QtWidgets.QTableWidgetItem()
        self.table.setHorizontalHeaderItem(5, item)
        self.table.horizontalHeader().setDefaultSectionSize(200)
        self.table.horizontalHeader().setStretchLastSection(True)
        self.table.verticalHeader().setVisible(False)
        self.gridLayout.addWidget(self.table, 0, 0, 1, 1)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        item = self.table.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "Α/Α"))
        item = self.table.horizontalHeaderItem(1)
        item.setText(_translate("Dialog", "Είδος"))
        item = self.table.horizontalHeaderItem(2)
        item.setText(_translate("Dialog", "Τίτλος"))
        item = self.table.horizontalHeaderItem(3)
        item.setText(_translate("Dialog", "Ακολουθία λιστών αναπαραγωγής"))
        item = self.table.horizontalHeaderItem(4)
        item.setText(_translate("Dialog", "Διαδρομή / Διεύθυνση Internet"))
        item = self.table.horizontalHeaderItem(5)
        item.setText(_translate("Dialog", "Ενέργεια"))


File run_me.py

from PyQt5 import QtCore, QtWidgets, QtCore
from untitled import *
import sys

class Run_Me:
    def __init__(self):     
        self.app = QtWidgets.QApplication(sys.argv)
        self.Dialog = QtWidgets.QDialog()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self.Dialog)
        self.Dialog.showMaximized()

        self.display_table()

        sys.exit(self.app.exec_())


    def display_table(self):
        self.row_action_widgets = []
        self.ui.table.setRowCount(0)
        counter = 0
        display_result = "ok"
        #self.error_items.insert(0,self.error_items[0])

        verticalHeader = self.ui.table.verticalHeader()
        verticalHeader.setSectionResizeMode(QtWidgets.QHeaderView.Fixed)


        for row in range(0,5):
            self.ui.table.insertRow(counter)
            self.row_action_widgets.append({})
            self.display_table_row(counter)
            counter = counter + 1
            if display_result != "ok":
                break
            


        
        self.ui.table.setStyleSheet("QTableWidget{border:1px solid #ABABAB;}QTableWidget::item {border: 0px;padding: 10px 10px 10px 10px; }")       

        #self.ui.table.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
        #self.ui.table.setAlternatingRowColors(True)
        #self.ui.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.ui.table.setStyleSheet("QTableWidget::item {border: 0px;padding: 10px 10px 10px 10px; }QTableWidget{border:1px solid #ABABAB;gridline-color:green}\n\nQTableCornerButton::section{border-width: \n    1px; border-color: #BABABA; border-style:solid;border-left:none;border-top:none;}")

        
        self.ui.table.setColumnWidth(0, 90)           
        self.ui.table.setColumnWidth(1, 200)           
        self.ui.table.setColumnWidth(2, 200)           
        self.ui.table.setColumnWidth(3, 300)           
        self.ui.table.setColumnWidth(4, 200)           
        self.ui.table.setColumnWidth(5, 450)           
        
        self.ui.table.resizeRowsToContents()

    def display_table_row(self,counter):
        # Α/Α
        counter_item = QtWidgets.QTableWidgetItem(str(counter+1))
        counter_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,0,counter_item)

        # Είδος
        type_item = QtWidgets.QTableWidgetItem("Item type")
        type_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,1,type_item)

        # Τίτλος
        title_item = QtWidgets.QTableWidgetItem("Title")
        title_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,2,title_item)

        # Playlist sequence
        sequence_item = QtWidgets.QTableWidgetItem("Sequence text")
        sequence_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,3,sequence_item)

        # Url / Original path
        path_item = QtWidgets.QTableWidgetItem(str("Wrong url or wrong sound file path"))
        path_item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.Alignment(QtCore.Qt.TextWordWrap))
        self.ui.table.setItem(counter,4,path_item)

        #Action frame
        self.row_action_widgets[counter]["groupBox"] = QtWidgets.QGroupBox(self.Dialog)
        self.row_action_widgets[counter]["groupBox"].setEnabled(True)
        #self.row_action_widgets[counter]["groupBox"].setGeometry(QtCore.QRect(10, 0, 410, 265))
        self.row_action_widgets[counter]["sizePolicy"] = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        self.row_action_widgets[counter]["sizePolicy"].setHorizontalStretch(0)
        self.row_action_widgets[counter]["sizePolicy"].setVerticalStretch(0)
        self.row_action_widgets[counter]["sizePolicy"].setHeightForWidth(self.row_action_widgets[counter]["groupBox"].sizePolicy().hasHeightForWidth())
        self.row_action_widgets[counter]["groupBox"].setSizePolicy(self.row_action_widgets[counter]["sizePolicy"])
        self.row_action_widgets[counter]["groupBox"].setCheckable(True)
        self.row_action_widgets[counter]["gridLayout"] = QtWidgets.QGridLayout(self.row_action_widgets[counter]["groupBox"])
        self.row_action_widgets[counter]["retransmition_url_frame"] = QtWidgets.QFrame(self.row_action_widgets[counter]["groupBox"])
        self.row_action_widgets[counter]["retransmition_url_frame"].setGeometry(QtCore.QRect(10, 10, 410, 225))
        self.row_action_widgets[counter]["retransmition_url_frame"].setMinimumSize(QtCore.QSize(0, 0))
        self.row_action_widgets[counter]["retransmition_url_frame"].setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.row_action_widgets[counter]["retransmition_url_frame"].setStyleSheet("QFrame{border:none;}")
        self.row_action_widgets[counter]["retransmition_url_frame"].setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.row_action_widgets[counter]["retransmition_url_frame"].setFrameShadow(QtWidgets.QFrame.Raised)
        self.row_action_widgets[counter]["gridLayout_2"] = QtWidgets.QGridLayout(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["spacerItem"] = QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        self.row_action_widgets[counter]["gridLayout_2"].addItem(self.row_action_widgets[counter]["spacerItem"], 0, 0, 1, 1)                
        self.row_action_widgets[counter]["const_url_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["const_url_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["const_url_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["const_url_lineedit"], 2, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setEnabled(False)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"], 5, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setEnabled(False)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setDragEnabled(True)
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setClearButtonEnabled(True)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_website_lineedit"], 4, 0, 1, 1)
        self.row_action_widgets[counter]["dynamic_url_radiobutton"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["dynamic_url_radiobutton"], 3, 0, 1, 1)
        self.row_action_widgets[counter]["youtube_option"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["youtube_option"], 6, 0, 1, 1)
        self.row_action_widgets[counter]["const_url_radiobutton"] = QtWidgets.QRadioButton(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["const_url_radiobutton"].setChecked(True)
        self.row_action_widgets[counter]["const_url_radiobutton"].setAutoRepeat(False)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["const_url_radiobutton"], 1, 0, 1, 1)
        self.row_action_widgets[counter]["youtube_url"] = QtWidgets.QLineEdit(self.row_action_widgets[counter]["retransmition_url_frame"])
        self.row_action_widgets[counter]["youtube_url"].setEnabled(False)
        self.row_action_widgets[counter]["gridLayout_2"].addWidget(self.row_action_widgets[counter]["youtube_url"], 7, 0, 1, 1)


        self.row_action_widgets[counter]["groupBox"].setTitle("Αντικατάσταση url αναμετάδοσης; (αν όχι τότε παράλειψη)")
        self.row_action_widgets[counter]["const_url_radiobutton"].setText("Εισαγωγή σταθερής Διεύθυνσης url stream")
        self.row_action_widgets[counter]["const_url_lineedit"].setPlaceholderText("Πληκτρολογήστε την σταθερή Διεύθυνση url stream")
        self.row_action_widgets[counter]["dynamic_url_javascript_lineedit"].setPlaceholderText("javascript κώδικας για την εύρεση της διεύθυνσης του συνεργαζόμενου ραδιοσταθμού")
        self.row_action_widgets[counter]["dynamic_url_website_lineedit"].setPlaceholderText("Πληκτρολογήστε την διεύθυνσης url web site")
        self.row_action_widgets[counter]["youtube_option"].setText("Εισαγωγή youtube live stream url")
        self.row_action_widgets[counter]["dynamic_url_radiobutton"].setText("Εισαγωγή διεύθυνσης url web site")
        self.row_action_widgets[counter]["youtube_url"].setPlaceholderText("Εισάγετε την youtube διεύθυνση internet ")



        self.row_action_widgets[counter]["groupBox"].setStyleSheet("QGroupBox{width:calc(100% - 20px)!important;height:265px!important;background-color:rgb(253, 255, 183);border:none;padding:10px}QGroupBox::title{subcontrol-origin: margin;subcontrol-position: top left;padding: 10px;}")
        self.ui.table.setCellWidget(counter,5,self.row_action_widgets[counter]["groupBox"])
        self.ui.table.itemAt(counter,5).setSizeHint(QtCore.QSize(self.row_action_widgets[counter]["retransmition_url_frame"].size().width(),265))

            #self.ui.table.setRowHeight(counter,265)
        return "ok"



if __name__ == "__main__":
    program = Run_Me()

Execution: python3.10 + pyqt5: python3 run_me.py
Result image:

enter image description here

The row heights are wrong.

One snippet change in code of file run_me.py

line:58 same ->     def display_table_row(self,counter):
line:59 add ->          if counter>0:
line:60 add ->              return "ok"

Result of this execution:

enter image description here

What's wrong?
Note also strange behaviour in displaying two rows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文