0

我有一个窗口(QtGui.QMainWindow),我正在尝试添加文本,但我知道您无法在 pyqt 中向窗口添加文本,所以我在窗口中添加了一个小部件,但该小部件并未仅显示对话框

这是窗口代码:

class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
         super(MyWindow, self).__init__(parent)
         self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
         self.setWindowOpacity(.9)
         text_widget = text(self)
         self.widgets = QtGui.QStackedWidget()
         self.widgets.addWidget(text_widget)
         self.setStyleSheet("QMainWindow { background: 'black'}");

这是我要添加的小部件:

class text(QtGui.QWidget):
    def __init__(self, parent=None):
         super(text, self).__init__(parent)
         self.label1 = QtGui.QLabel('Welcome')
         layout = QtGui.QHBoxLayout()
         layout.addWidget(self.label1)
         self.setLayout(layout)a

如果需要,我可以发布显示我想与主窗口一起显示的对话框窗口的整个代码。主窗口是全屏的,不透明度降低,因为我正在尝试添加背景,因此您无法退出我的登录屏幕对话框显示无框窗口,因此无法移动。我希望对话框与小部件一起显示

这是可能需要它的人的整个代码,因为它很长我刚刚将它粘贴在 bpaste http://bpaste.net/show/Xus3ME83YTjiEK4gnqRu/

4

1 回答 1

3

您必须将小部件设置为MyWindowMainWindow 的中央小部件。QMainWindow 应该有一个中央小部件集。

class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowOpacity(.9)
        text_widget = text(self)
        self.setCentralWidget(text_widget)
        self.setStyleSheet("QMainWindow { background: 'black'}");

或堆栈小部件,或其他任何东西。但是,如果您创建一个QMainWindow,那么如果您希望它出现,则必须将其设置为中央小部件。

更新:

class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowOpacity(.9)
        text_widget = text(self)
        self.setCentralWidget(text_widget)
        self.setStyleSheet("QMainWindow { background: 'black'}");

class text(QtGui.QWidget):
    def __init__(self, parent=None):
        super(text, self).__init__(parent)
        self.label1 = QtGui.QLabel('Welcome', self)
        self.label1.move(100, 10)
        self.label1.setStyleSheet("QLabel { color : red; font-size: 28px; }")
于 2013-08-17T22:35:42.803 回答