我有一个窗口(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/
答案 0 :(得分:3)
您必须将小部件设置为MyWindow
MainWindow的中央小部件。 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; }")