Форум сайта python.su
Всем привет!
Есть основная форма и основной класс
Есть некий родитель
class MyModalWindow(QtGui.QWidget): def closeEvent(self, QMesBox): pass
btn_modal_okn.clicked.connect(self.show_modal_window)
def show_modal_window(self): window = MyModalWindow(process, QtCore.Qt.Dialog) # privyazivaem modal okno roditerlya window.setWindowModality(QtCore.Qt.WindowModal) # ApplicationModal blokiruet vse okna window.setWindowTitle("okno") # zagolovok okna window.setGeometry(140, 130, 240, 100) window.show()
self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowTitleHint)
quit = QtGui.QPushButton('Close', self) quit.setGeometry(10, 10, 60, 35) self.connect(quit, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()'))
Офлайн
lefmailsродитель кого? если есть родитель, то где наследник?
Есть некий родитель
lefmailsну дык надо перечислять все флаги:
Пробовал как в главном окне
self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowTitleHint)
Но не получилось.
self.setWindowFlags(QtCore.Qt.Dialog|QtCore.Qt.CustomizeWindowHint|QtCore.Qt.WindowTitleHint|QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowCloseButtonHint)
import sys from PyQt4 import QtGui, QtCore class MyModalWindow(QtGui.QWidget): def __init__(self,parent, flag, *args, **kwargs): super().__init__(parent, flag, *args, **kwargs) self.setWindowFlags(flag|QtCore.Qt.CustomizeWindowHint|QtCore.Qt.WindowTitleHint|QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowCloseButtonHint) self.setWindowModality(QtCore.Qt.WindowModal) def closeEvent(self, QMesBox): pass class MainWindow(QtGui.QWidget): def __init__(self, parent=None): super().__init__( parent) self.btn = QtGui.QPushButton('click me', self) self.btn.clicked.connect(self.show_modal_window) def show_modal_window(self): window = MyModalWindow(self, QtCore.Qt.Dialog) window.setWindowTitle("okno") window.setGeometry(140, 130, 240, 100) window.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mw = MainWindow() mw.show() sys.exit(app.exec_())
def show_modal_window(self): msg = QtGui.QMessageBox() msg.setIcon(QtGui.QMessageBox.Information) msg.setStandardButtons(QtGui.QMessageBox.Close) msg.setText('Тут какоето сообщение') msg.setWindowFlags(QtCore.Qt.CustomizeWindowHint|QtCore.Qt.WindowTitleHint|QtCore.Qt.WindowCloseButtonHint) msg.exec()
[code python][/code]
Отредактировано PEHDOM (Апрель 18, 2019 11:53:49)
Офлайн
(QT4 Py2.7.15)
не получилось
ни в основно программе
Создал новую программу, вставил Ваш код и все равно ошибка:
File "C:/gt/test/1/0tst.py", line 22, in <module> mw = MainWindow() File "C:/gt/test/1/0tst.py", line 12, in __init__ super().__init__( parent) TypeError: super() takes at least 1 argument (0 given)
Офлайн
lefmailsточно, точно, у тебяж 2.7
А что такое super()
super().__init__(parent, flag, *args, **kwargs) на QtGui.QWidget.__init__(self, parent, flag, *args, **kwargs)
super().__init__( parent) на QtGui.QWidget.__init__(self, parent)
[code python][/code]
Отредактировано PEHDOM (Апрель 18, 2019 15:18:35)
Офлайн
Спасибо!
А как в этом окно что то вывести (например глобальную переменную TEST и изменить ее?
Что то даже label_w не получается вывести и self.label_w и window.label_w Пробовал
def show_modal_window(self): window = MyModalWindow(self, QtCore.Qt.Dialog) window.setWindowTitle("okno") window.setGeometry(140, 130, 240, 100) label_w = QtGui.QLabel('asd', self) label_w.setGeometry(10, 10, 60, 20) label_w.setStyleSheet(QString("font-size: %1px").arg(21)) window.show()
Офлайн
lefmailsчтото вы неправильно пробовали, вам бы разобраться что такое переменная, что такое атрибут класса, а что такое метод, а то так и будете вслепую тыкаться. документацию почитать на PyQt/
Что то даже label_w не получается вывести и self.label_w и window.label_w Пробовал
label_w = QtGui.QLabel('asd', self)
import sys from PyQt4 import QtGui, QtCore class MyModalWindow(QtGui.QWidget): def __init__(self,parent, flag, *args, text='', **kwargs): QtGui.QWidget.__init__(self, parent, flag, *args, **kwargs) self.setWindowFlags(flag|QtCore.Qt.CustomizeWindowHint|QtCore.Qt.WindowTitleHint|QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowCloseButtonHint) self.setWindowModality(QtCore.Qt.WindowModal) layout = QtGui.QVBoxLayout(self) layout.setAlignment(QtCore.Qt.AlignCenter) self.setLayout(layout) self.label_w = QtGui.QLabel(text, self) layout.addWidget(self.label_w) def set_text(self, text): self.label_w.setText(text) def closeEvent(self, QMesBox): pass class MainWindow(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.btn = QtGui.QPushButton('click me', self) self.btn.clicked.connect(self.show_modal_window) def show_modal_window(self): window = MyModalWindow(self, QtCore.Qt.Dialog) window.setWindowTitle("okno") window.setGeometry(140, 130, 240, 100) window.set_text('Какоето сообщение.') window.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mw = MainWindow() mw.show() sys.exit(app.exec_())
[code python][/code]
Офлайн
Да надо подтягивать теорию…
На строчку:
def __init__(self,parent, flag, *args, text='', **kwargs):
There's an error in your programm invalid, syntx
Офлайн