QTableView 突出显示在子窗口中不起作用

问题描述 投票:0回答:1

我有一个 QMainWindow,它正在调用一个带有 QTableView 的子窗口(QDialog)。问题是,如果我在 QTableView 中选择一个项目,它不会突出显示。如果我没有将对话框设置为主窗口的子项,它就可以工作。调色板是否以某种方式继承自主窗口?子对话框是从 .ui 文件加载的。

我已经打印了调色板的颜色,它是正确的颜色:

        palette = self.tblView.palette()
        print(palette.highlight().color().name())

有什么建议吗?

问候,大卫

编辑:

我现在是这样做的:

主窗口.py:

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        uic.loadUi(os.path.abspath('ui/mainwindow.ui'), self)

    def function(self):
        self.setEnabled(False)
        self.OeffnenWindow = OeffnenDialog(self)
        returncode = self.OeffnenWindow.exec_()
        if returncode == 0:
            self.setEnabled(True)
        if returncode == 1:
            self.setEnabled(True)
            do_something()

oeffnendialog.py:

class OeffnenDialog(QtWidgets.QDialog):

    def __init__(self, parent=None):
        super(OeffnenDialog, self).__init__(parent)
        uic.loadUi(os.path.abspath('ui/oeffnen.ui'), self)

QDialog (oeffnendialog.py) 包含一个填充数据的 QTableView。在 QTableView 内部单击不会突出显示所选行。其他一切都按照我的意愿工作。

这是我在 QTableView 上的选择/编辑触发器:

QtWidgets.QAbstractItemView.SelectRows
QtWidgets.QAbstractItemView.SingleSelection
QtWidgets.QAbstractItemView.NoEditTriggers

如果我那样做它正在工作:

self.OeffnenWindow = OeffnenDialog()

在 QDialog 类中:

super(OeffnenDialog, self).__init__(parent)

但是它不是 MainWindow 的子级,它显示在任务栏上,在切换到另一个应用程序时不会被带到前面等等。

python qt pyqt qtableview
1个回答
0
投票

弄明白了,我在主窗口中有一个样式表,将 QTableView 的突出显示颜色设置为白色。应该在发布之前更好地检查我的 ui 文件,抱歉!

问候

© www.soinside.com 2019 - 2024. All rights reserved.