‘壹’ pythonmain.exe上有按钮
水平有限,欢迎建议和挑错
PyQt5中按钮是一个QpushButton,可以提供一个点击的按钮来触发摸一个事件。
按钮可以显示图片或者文字。
创建按钮
我们在第一节的mainwindow上创建一个按钮,代码如下:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240, 75, 23))
self.pushButton.setObjectName("pushButton")
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
这里只是单单创建一个按钮,按钮点击并没有任何作用。
同样按钮也可以进行各种设置。
image
除了上图几种方法,再介绍另外几种方法。
(1)设置字体大小,加粗,字型
font = QtGui.QFont()
font.setFamily('微软雅黑')
font.setBold(True)
font.setPointSize(13)
font.setWeight(75)
self.pushButton.setFont(font)
这个方法是通用的。几乎PyQt其他组件也能用。
image
(2)设置图片
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(50, 80))
self.pushButton.setAutoRepeatDelay(200)
image
无图代码
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240,200, 53))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("一颗数据小白菜")
# self.pushButton.setFlat(True)
self.pushButton.setStyleSheet("background-color: rgb(164, 185, 255);"
"border-color: rgb(170, 150, 163);"
"font: 75 12pt \"Arial Narrow\";"
"color: rgb(126, 255, 46);")
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
有图代码
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240,200, 53))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("一颗数据小白菜")
# self.pushButton.setFlat(True)
self.pushButton.setStyleSheet("background-color: rgb(164, 185, 255);"
"border-color: rgb(170, 150, 163);"
"font: 75 12pt \"Arial Narrow\";"
"color: rgb(126, 255, 46);")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(50, 80))
self.pushButton.setAutoRepeatDelay(200)
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
绑定按钮事件
我们给按钮绑定触发时间,用:
pushbutton.clicked.connect()
(1)退出事件
我们给按钮绑定退出事件:
self.pushButton.clicked.connect(mainWindow.close)
image
‘贰’ Python如何进行GUI桌面开发有哪些不错的库可以推荐
Python进行GUI开发的库其实很多,下面我简单介绍几个不错桥和的库,感兴趣的朋友可以自己尝试一下,实验环境win10+python3.6+pycharm5.0,主要内容如下:
tkinter
这个就不用多说了,python自带的GUI开发标准库,对于开发小型简单的应用来说,完全可以了,开源、跨平台,使用起来非常方便,下面我简单测试一下,主要代码如下:
点击运行程序,效果如下,一个窗口一个Label标签:
easygui
这个是基于tkinter的一个窗口GUI库,可以快速创建窗口对话框,包括常见的登陆对话框、注册对话框等,下面我简单介绍一下这个库的安装和使用:
1.首先,安装easygui,这个直接在cmd窗口输入安装命令“pipinstalleasygui”就行,如下:
2.安装完成后,我们就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行这个程序,效果如下:
kivy
这是一个跨平台的GUI应用程序开发库,可以用来开发安卓、苹果应用,一套程序,可以处处运行,下面我简单介绍一下这个库的安装和使用:
1.首先,安装kivy,这个直接按官方教程安装就行,如下:
2.安装完成后,就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行程序,效果如下,这里你可以将其打包为手机应用,安装到手机上:
wxpython
这也是一个免费、跨平台的PythonGUI开发库,相比较前面的tkinter来说,功能更为强大,控件也更多,下面我简单介绍一下这个库的安装和使用:
1.首先,安装wxpython,这个也直接在cmd窗口输入命令“pipinstallwxpython”就行,如下:
2.安装完成后,我们就可以直接编写相关代码进行测试了,主要代让枯码如下,非常简单,一个简单的文本编辑器:
点击运行这个程序,效果如下:
pyqt
这个Qt的一个Python接口库,借助于Qt强大的用户界面,Python也可以快速开发出GUI程序,组件更多,也更方便,只要你有一定的Qt基础,很快就能掌握这个库的使用,下面我简单介绍一下这个库的安装和使用:
1.首先,安装pyqt,这个直接在cmd窗口输入安装命令“pipinstallpyqt5”就行,如下,安装需要稍微等待一会儿:
2.安装完成后,我们就可以直接编写代码进行测试了,如下,一个简坦消洞单的计算器:
点击运行这个程序,效果如下:
至此,我们就介绍完了这5个PythonGUI库。总的来说,这5个库使用起来都非常不错,如果你的应用界面比较简单,功能要求不高,可以选择tkinter和easygui,如果界面比较复杂,功能要求比较复杂,可以考虑使用wxpython或pyqt,当然,你也可以使用其他GUI库,像pygame等,根据实际项目需求而定,网上也有相关资料和教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
‘叁’ python pyqt5 操作sqlite
'''
【简介】
PyQt5中 处理database 例子
'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import QSqlDatabase , QSqlQuery
def createDB():
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('./db/database.db')
if name == ' main ':
app = QApplication(sys.argv)
createDB()
sys.exit(app.exec_())
'''
【简介】
PyQt5中 处理database 例子
'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
from PyQt5.QtCore import Qt
def initializeModel(model):
model.setTable('people')
model.setEditStrategy(QSqlTableModel.OnFieldChange)
model.select()
model.setHeaderData(0, Qt.Horizontal, "ID")
model.setHeaderData(1, Qt.Horizontal, "name")
model.setHeaderData(2, Qt.Horizontal, "address")
def createView(title, model):
view = QTableView()
view.setModel(model)
view.setWindowTitle(title)
return view
def addrow():
ret = model.insertRows(model.rowCount(), 1)
print('insertRows=%s' % str(ret))
def findrow(i):
delrow = i.row()
print('del row=%s' % str(delrow))
if name == ' main ':
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('./db/database.db')
model = QSqlTableModel()
delrow = -1
initializeModel(model)
view1 = createView("Table Model (View 1)", model)
view1.clicked.connect(findrow)
‘肆’ 如何使用pyQT做pythonGUI界面
首先,如果没有安装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
随即会弹出一个配置连接窗口。左边的是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文件,就会弹出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!
‘伍’ python界面编程问题
呵呵,python做界面是极其在行的~在我眼中是不二选择!
即使不用第三方库,直接使用python的Tk就可以满足大多GUI编程需要了。wxpython是另一个流行的GUI库(不叫软件),风格接近C++但是提供了更多的“积木”,同时有更advance的东西,例如和OpenGL的结合等。boa提供了一个画出GUI的东东,基于wxpython,不过个人觉得还是手写代码更方便,即使从现成的里面ctrl c ctrl v……(BiForm我没有听过)。
推荐wxpython in action,tk也有一本书,在programming python这本书里面也有大段的介绍。
最后建议——早点选好GUI,并开始好好练习钻研!
‘陆’ python怎么使用qtdesigner设计的ui
软硬件环境
OS X EI Capitan
Python 3.5.1
PyQt 5.5.1
PyCharm 5.0.1
前言
在PyQt5系列教程的第一篇h50218157,我们已经搭建好了开发环境,今天,我们就用Python开发第一个Qt GUI程序,让大家感受下Qt开发的魅力,熟悉下Qt开发GUI程序的一般流程。
制作程序UI界面,一般会有2种方法,利用UI制作工具和纯代码编写,像移动开发中的Android和iOS都是这样,在PyQt5中,我们也有这么2种方式。
QtDesigner工具简介
QtDesigner是专门用来制作Qt程序UI界面的工具,它使用起来非常简单,只要通过拖拽和点击就可以完成复杂的界面设计,而且还可以随时预览查看效果图。
其中,区域1是UI界面制作导向,QtDesigner为我们提供了一些常用模块,非常方便;区域2是UI控件列表;区域3是控件属性列表;区域4是Action Editor编辑列表;区域5信号和槽的编辑列列表;区域6是资源处理窗口。
第一个PyQt5程序
说了这么多,还不如来动手实践一下。
这个是我们第一个PyQt5项目的界面效果图,需要实现的是当点击界面上的按钮时,弹出一个提示框,提示框内显示一串文字。
好了,目标定好了,马上开始去实现它。
QtDesigner设计UI
创建一个基于Main Window模块的UI文件,取名叫firstPyQt5.ui。从Widget Box中找到(也可以)Push Button,将它拖拽到工作空间里,调整位置,在Button上输入文字,调整字体及大小,这些都可以在Property Editor里操作。按钮点击弹框的操作会牵出Qt里非常重要的一对概念,即信号和槽(signal and slot),关于这个我打算再开一篇博文细讲。现在你只需要知道slot就是一个函数,如果一个signal和一个slot绑定以后,那么signal被触发,slot就会被执行。
那么问题来了,怎么在QtDesigner里绑定signal和slot呢?打开菜单栏里的Edit—>Edit Signals/Slots,然后光标移到按钮上点击拖拽,这时会弹出一个编辑框
因为是点击,所以signal选择clicked(),slot函数现在还没有,我们就点击Edit新建一个,叫firstPyQt5_button_click()
为了演示一下资源文件的使用,这里导入两张图片,一张给主窗口,另一张给帮助菜单项里的Action。
在QtDesigner引用资源文件之前,需要先准备一个qrc文件,它跟xml文件比较类似,用来制定资源文件的路径
接下来就可以在QtDesigner的Resource Browser里倒入qrc文件,这样qrc文件中描述的资源就可以使用了
将firstPyQt5.ui转换成python代码
非常简单,通过Qt提供的命令行工具pyuic5就可以轻松实现
创建PyCharm工程
新建一个新的python文件main.py,代码如下
接下修改下firstPyQt5.py文件,主要是去实现slot函数,因为之前在QtDesigner里没有实现,让它弹出一个消息框
最后运行下工程
这里一般将ui文件单独存成一个文件,便于更新。
‘柒’ Python,pyqt5
pyqt5&pythonGui入门教程(1)第一个窗口(1) 第一个窗口和代码详细注释: fromPyQt5importQtWidgets#从PyQt库导入QtWidget通用窗口类classmywindow(QtWidgets.QWidget):#自己建一个mywindows类,以class开头,mywindows是自己的类名,
‘捌’ python如何调用ui文件
ui文件是Qt生成xml格式的文件,python要使用就得用pyside 或pyqt这其中一个库才能将ui文件转化为py文件,安装pyside库后,在命令行打这一句 : pyside-uic XXX.ui -o XXX_ui.py