Форум сайта python.su
0
Доброго времени суток! Начал освоение qt4, перерабатываю код с разных материалов и возник вопрос. Почему при исполнении этого кода не выводится кнопка закрытия в окне? Напутал с классом или неправильно координаты задал?
Фунция window_close_button
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore # create new class main window class WindowApp(QtGui.QMainWindow): def __init__(self): super(WindowApp, self).__init__() self.window_geometry() self.window_close_button() # window geometry def window_geometry(self): self.setGeometry(300, 300, 600,900) self.setWindowTitle('test_gui') self.window_position() self.show() # window position def window_position(self): qr = self.frameGeometry() center_pos = QtGui.QDesktopWidget().availableGeometry().center() qr.moveCenter(center_pos) self.move(qr.topLeft()) # button close def window_close_button(self): quit_button = QtGui.QPushButton('Close', self) quit_button.clicked.connect(QtCore.QCoreApplication.instance().quit) quit_button.resize(quit_button.sizeHint()) quit_button.move(250,850) # main def main(): app = QtGui.QApplication(sys.argv) main_window=WindowApp() sys.exit(app.exec_()) if __name__ == '__main__': main()
Отредактировано kukuruku11 (Июнь 29, 2015 15:35:21)
Офлайн
0
kukuruku11
Доброго времени суток! Начал освоение qt4, перерабатываю код с разных материалов и возник вопрос. Почему при исполнении этого кода не выводится кнопка закрытия в окне? Напутал с классом или неправильно координаты задал? Фунция window_close_button
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore # create new class main window class WindowApp(QtGui.QMainWindow): def __init__(self): super(WindowApp, self).__init__() self.window_geometry() # window geometry def window_geometry(self): self.setGeometry(300, 300, 600,900) quit_button = QtGui.QPushButton('Close', self) quit_button.clicked.connect(QtCore.QCoreApplication.instance().quit) quit_button.resize(quit_button.sizeHint()) quit_button.move(250,850) self.setWindowTitle('test_gui') self.window_position() self.show() # window position def window_position(self): qr = self.frameGeometry() center_pos = QtGui.QDesktopWidget().availableGeometry().center() qr.moveCenter(center_pos) self.move(qr.topLeft()) # main def main(): app = QtGui.QApplication(sys.argv) main_window=WindowApp() sys.exit(app.exec_()) if __name__ == '__main__': main()
Отредактировано kukuruku11 (Июнь 29, 2015 15:58:40)
Офлайн
186
> Почему код работает в этом виде?
Потому что кнопка создаётся до вызова метода self.show()
> Мы можем разнести разные элеметны окна в разные функции, как это сделано в первом варианте?
Зачем вам такое делать?
Офлайн
0
RodegastМне кажется логичным и красивым создание элементов окна разными блоками кода. Хотя я только начинаю.
Зачем вам такое делать?
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore # create new class main window class WindowApp(QtGui.QMainWindow): def __init__(self): super(WindowApp, self).__init__() self.setGeometry(300, 300, 600,900) self.window_base() self.setWindowTitle('test_gui') self.statusBar().showMessage('Ready') # window application def window_base(self): self.window_position() self.window_close_button() self.show() # window position def window_position(self): qr = self.frameGeometry() center_pos = QtGui.QDesktopWidget().availableGeometry().center() qr.moveCenter(center_pos) self.move(qr.topLeft()) # window close button def window_close_button(self): quit_button = QtGui.QPushButton('Close', self) quit_button.clicked.connect(QtCore.QCoreApplication.instance().quit) quit_button.resize(quit_button.sizeHint()) quit_button.move(250,850) # main def main(): app = QtGui.QApplication(sys.argv) main_window=WindowApp() sys.exit(app.exec_()) if __name__ == '__main__': main()
Отредактировано kukuruku11 (Июнь 29, 2015 16:48:20)
Офлайн
72
Откройте для себя менеджеры компоновки
Офлайн
0
PooHСпасибо, буду разбираться
Откройте для себя менеджеры компоновки
Офлайн
186
> Обвес из кнопок, надписей и т.п. за счет встроенных модулей и самописных функций
Лучше забудь про эту глупость и открой для себя дизайнер.
Офлайн
0
RodegastQtDesigner всмысле?
> Обвес из кнопок, надписей и т.п. за счет встроенных модулей и самописных функцийЛучше забудь про эту глупость и открой для себя дизайнер.
Офлайн