嗨,我是python的新手(直到第3课和MIT 6001计算机科学与编程入门]]
不过,在Python中,我开始使用PyQt5和Designer(在Linux上为Python3,PyQt5)。
我读过一些关于PyQt5的内容,但是对面向对象编程和Qt的了解不多,>
文档也像克林贡我一样。无法弄清楚为什么此脚本test.py无法打开第二个
窗口,实际上它确实打开了它,我可以在第一个窗口前短暂看到它解散了
当我按下退出按钮时?有什么帮助吗?以及任何可以找到
逻辑的简单资源Qt和应用程序的不同类针对像我这样的未受过教育的人循环。
test.py
!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Apr 8 14:25:12 2020 @author: Pietro """ import sys from PyQt5 import QtWidgets, uic from PyQt5.QtWidgets import QDesktopWidget def main(): class quitto(QtWidgets.QMainWindow): def __init__(self): super(quitto, self).__init__() uic.loadUi('exitmain.ui', self) self.center() self.show() print('inside quitting2 ' *5) def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) class menu(QtWidgets.QMainWindow): def __init__(self): super(menu, self).__init__() uic.loadUi('main.ui', self) self.ButtonQ.clicked.connect(self.QPushButtonQPressed) self.center() self.show() def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) def QPushButtonQPressed(self): #This is executed when the button is pressed print('buttonB pressed' *5) pippo=quitto() pippo.show() app = QtWidgets.QApplication(sys.argv) window=menu() app.exec_() if __name__ == '__main__':
和main.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="windowModality"> <enum>Qt::WindowModal</enum> </property> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>520</width> <height>600</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <property name="windowIcon"> <iconset resource="resource001.qrc"> <normaloff>:/main/python.png</normaloff> <normalon>:/main/python.png</normalon> <disabledoff>:/main/python.png</disabledoff> <disabledon>:/main/python.png</disabledon> <activeoff>:/main/python.png</activeoff> <activeon>:/main/python.png</activeon> <selectedoff>:/main/python.png</selectedoff> <selectedon>:/main/python.png</selectedon>:/main/python.png</iconset> </property> <property name="styleSheet"> <string notr="true">QPushButton{ background-color: #9de650; } QPushButton:hover{ background-color: green; } QPushButton#ButtonQ{ background-color: orange; } QPushButton#ButtonQ:hover{ background-color: red; }</string> </property> <widget class="QWidget" name="centralwidget"> <widget class="QLabel" name="label"> <property name="geometry"> <rect> <x>20</x> <y>0</y> <width>471</width> <height>71</height> </rect> </property> <property name="font"> <font> <pointsize>16</pointsize> <weight>75</weight> <bold>true</bold> <underline>true</underline> </font> </property> <property name="text"> <string>House-Buying-Menu</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> <widget class="QPushButton" name="ButtonA"> <property name="geometry"> <rect> <x>170</x> <y>100</y> <width>151</width> <height>81</height> </rect> </property> <property name="font"> <font> <pointsize>20</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>A</string> </property> </widget> <widget class="QPushButton" name="ButtonB"> <property name="geometry"> <rect> <x>170</x> <y>210</y> <width>151</width> <height>81</height> </rect> </property> <property name="font"> <font> <pointsize>20</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>B</string> </property> </widget> <widget class="QPushButton" name="ButtonC"> <property name="geometry"> <rect> <x>170</x> <y>320</y> <width>151</width> <height>81</height> </rect> </property> <property name="font"> <font> <pointsize>20</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>C</string> </property> </widget> <widget class="QPushButton" name="ButtonQ"> <property name="geometry"> <rect> <x>170</x> <y>450</y> <width>151</width> <height>81</height> </rect> </property> <property name="font"> <font> <pointsize>20</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>QUIT</string> </property> </widget> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>520</width> <height>29</height> </rect> </property> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <resources> <include location="resource001.qrc"/> </resources> <connections/> </ui>
和mainexit.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>631</width> <height>496</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="geometry"> <rect> <x>200</x> <y>310</y> <width>174</width> <height>33</height> </rect> </property> <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>631</width> <height>29</height> </rect> </property> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <resources/> <connections/> </ui>
[嗨,我是python的新手(直到第3课以及MIT 6001 Python计算机科学和编程入门),我仍然开始与PyQt5和Designer(Linux上的Python3,PyQt5)一起玩。 ...
此行为的原因是,您正在创建的quitto
实例是“垃圾收集”。像许多高级语言一样,Python拥有一个自动管理内存的系统,并负责释放它“认为”不再有用的对象的内存。
在函数中创建的任何局部变量总是在函数返回时立即删除,除非以某种方式引用了持久对象。