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

ウィジェットを MainWindowの中央ウィジェットに設定する必要がありますMyWindow。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 に答える