2013-08-17 2 views
0

У меня есть окно (QtGui.QMainWindow), которое я пытаюсь добавить текст, но я знаю, что вы не можете добавить текст в окно в pyqt, поэтому я добавляю виджет в окно но виджет разве появляется только диалоговоеPyQt - Виджет в QtGui.QtMainWindow

здесь код окна:

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 

и при необходимости я могу опубликовать весь код, который отображает циферблат og, которое я хочу показать в главном окне. главное окно - полноэкранный с непрозрачностью, опущенной, поскольку я пытаюсь добавить фон, поэтому вы не можете выйти из окна моего входа в систему, в диалоговом окне отображается бескаркасное окно, поэтому его нельзя перемещать. и я хочу диалоговое окно, которое будет отображаться вместе с виджетом

здесь весь код для кого-то, что может понадобиться для timesake как его довольно долго я просто вставить его на bpaste http://bpaste.net/show/Xus3ME83YTjiEK4gnqRu/

ответ

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, тогда вы должны установить его центральный виджет, если хотите, чтобы он появился.

Update:

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; }") 
+0

еще не могу видеть это диалоговое окно мое находится в середине экрана делать я должен переместить виджет? –

+0

Можете ли вы вставить весь пример кода, который создает проблему? Поскольку в текущем примере вы не видите никакого диалога. –

+0

1 секунда, чтобы получить его из моего pi –