如何使用pyQT做pythonGUI界面

如何使用pyQT做pythonGUI界面,第1张

首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。

2

打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。

3

现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。

4

随后我们再拖入一个可以编辑的“Line Edit”

5

最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。

6

目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可

7

此时我们已经完成了一半,接下来需要对动作信号进行 *** 作。我们需要先切入编辑姿芹简信号的模式

8

此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。

9

当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行 *** 作。

10

随即会d出一个配置连接窗口。左边的是pushbutton的 *** 作,我们选择clicked(),即点击pushbutton。

右边是对line edit的 *** 作,我们选择clear(),即清楚line edit中的内容。

最后我们点击确定。

保存完成后,我们在PyQt中的 *** 作迹裤就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。

然后我们需要把.ui文件转换成可编译的.py文件,我们需要用到PyQt提供的pyuic4命令来完成转换。这是一个DOS命令,因此我们需要调出DOS *** 作界面。打开开始菜单,找到附件中的运行。

在运行中输入cmd,确定后即可打开DOS界面。

在DOS界面下,我们需要定位到刚才保存的.ui文件的位置,如果是默认的话,会保存在C:\Python27\Lib\site-packages\PyQt4,定位的过程如图所示。转换成.py文件的命令是:pyuic4 test.ui -o test.py

转换命令执行后,会生成一个test.py的文件,如图所示

最后我们需要对生成的python文件加入头文件和主函数,就可以生成一个完整的GUI程序了!首先是在整个程序的最开头加入import sys,如图所示。

另外,在程序的末尾,加入如图所示的主函数代码。主函数会调用我们再PyQt里已经完成的生成元素的函数以及配置连接函数,因此我们只需要加上主首薯函数来调用他们即可。

保存后,双击我们编辑完成的python文件,就会d出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!

1.改变窗口状态

下列的方法可用来改变或判断窗口的状态(最小化、最大化、隐藏和显示):

from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def changeEvent(self, e):

if e.type() == QtCore.QEvent.WindowStateChange:

if self.isMinimized():

print("窗口最小化")

elif self.isMaximized():

print("窗口扮芹最大化")

elif self.isFullScreen():

print("全屏显示")

elif self.isActiveWindow():

print("活动窗口")

QtWidgets.QWidget.changeEvent(self, e)

def showEvent(self, e):

print("窗口显示")

QtWidgets.QWidget.showEvent(self, e)

def hideEvent(self, e):

print("窗口隐藏")

QtWidgets.QWidget.hideEvent(self, e)

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

2.改变窗谈世口的位置和尺寸

移动窗口、调整窗口尺寸时,下列方法将被调用:

from PyQt5 import QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def moveEvent(self, e):

print("x = {0}y = {1}".format(e.pos().x(), e.pos().y()))

QtWidgets.QWidget.moveEvent(self, e)

def resizeEvent(self, e):

print("w = {0}h = {1}".format(e.size().width(),e.size().height()))

QtWidgets.QWidget.resizeEvent(self, e)

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

3.重绘窗口

当控件或控件的部分变为可见时,控件需要重绘。此时,paintEvent(self,event)被调用。event参数包含QPaintEvent类的实例,通过该类有以下方法:

4.阻止窗口关闭

通过单击窗口标题栏中的关闭按钮或调用close()方法来关闭窗口时,closeEvent(self,event)方法被调用。 通过event参数可获得QCloseEvent类的一个对象。 为了防止窗口关闭,必须通过该对象调用ignore()方法,否则调用accept()方法。

下面的例子为:单击关闭按钮将显示一个标准对话框,要求确认是否关闭该窗口。 如果用户单击“是”按钮,则关闭窗口;如果用户单击厅侍毕“否”按钮,则仅关闭对话框,窗口不会被关闭。

from PyQt5 import QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def closeEvent(self, e):

result = QtWidgets.QMessageBox.question(self,

"关闭窗口确认",

"真的要关闭窗口?",

QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,

QtWidgets.QMessageBox.No)

if result == QtWidgets.QMessageBox.Yes:

e.accept()

QtWidgets.QWidget.closeEvent(self, e)

else:

e.ignore()

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

看了你的问题,几个回答似乎都不完全对。 给你补充一下吧。

你的问题与flask基本上没有关系。flask是一个简单的微型编程框架,很优美,也很简单好用。不过它仅仅实现了基于HTTP协议的服务端交互部分。

一个界面设计除了服务端交互,还需要本地交互(用JS, flash实现),手早最重要的还是需要客户端界面(用HTML+CSS+JS实现)。文件上传需要(JQUERY+UPLOADFILE库)

从上面的回答看,你似乎刚开始着手做这些。我建议你按这个思路去做。

先学习html2.0,不是4.01,毕没雀也不是5.0,因为2.0更基本。然后用frame和table做出你的界面,先实现左边的部分

然后学习css,把你左边的两个按钮搞定。用TABLE也可以,比察樱如笨。然后用CSS将frame方式换成iframe实现

用传统的html方式实现右边的上传下载

学习jquery,用其中uploadfile功能重新实现右边的上传功能

如果你学得快,需要1个星期,学得慢就说不准了,也许3个星期完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12424098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存