当前位置:首页 » 编程语言 » pyqtpython27

pyqtpython27

发布时间: 2022-07-28 06:36:21

A. python pyqt怎么画圆

这个例子我做了好几天:

1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化

2)网上的PyQt的例子根本运行不了

填了无数个坑,结合二者,终于能完成了一个关于绘图的东西。这个过程也掌握了很多新的知识点

【知识点】

1、关于多个点的使用

poitns = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]

请看:

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class StockDialog(QWidget): def __init__(self, parent=None):
super(StockDialog, self).__init__(parent)
self.setWindowTitle("利用QPainter绘制各种图形")

mainSplitter = QSplitter(Qt.Horizontal)
mainSplitter.setOpaqueResize(True)

frame = QFrame(mainSplitter)
mainLayout = QGridLayout(frame) #mainLayout.setMargin(10)
mainLayout.setSpacing(6)

label1=QLabel("形状:")
label2=QLabel("画笔线宽:")
label3=QLabel("画笔颜色:")
label4=QLabel("画笔风格:")
label5=QLabel("画笔顶端:")
label6=QLabel("画笔连接点:")
label7=QLabel("画刷风格:")
label8=QLabel("画刷颜色:")

self.shapeComboBox = QComboBox()
self.shapeComboBox.addItem("Line", "Line")
self.shapeComboBox.addItem("Rectangle", "Rectangle")
self.shapeComboBox.addItem('Rounded Rectangle','Rounded Rectangle')
self.shapeComboBox.addItem('Ellipse','Ellipse')
self.shapeComboBox.addItem('Pie','Pie')
self.shapeComboBox.addItem('Chord','Chord')
self.shapeComboBox.addItem('Path','Path')
self.shapeComboBox.addItem('Polygon','Polygon')
self.shapeComboBox.addItem('Polyline','Polyline')
self.shapeComboBox.addItem('Arc','Arc')
self.shapeComboBox.addItem('Points','Points')
self.shapeComboBox.addItem('Text','Text')
self.shapeComboBox.addItem('Pixmap','Pixmap')

self.widthSpinBox = QSpinBox()
self.widthSpinBox.setRange(0,20)

self.penColorFrame = QFrame()
self.penColorFrame.setAutoFillBackground(True)
self.penColorFrame.setPalette(QPalette(Qt.blue))
self.penColorPushButton = QPushButton("更改")

self.penStyleComboBox = QComboBox()
self.penStyleComboBox.addItem("Solid",Qt.SolidLine)
self.penStyleComboBox.addItem('Dash', Qt.DashLine)
self.penStyleComboBox.addItem('Dot', Qt.DotLine)
self.penStyleComboBox.addItem('Dash Dot', Qt.DashDotLine)
self.penStyleComboBox.addItem('Dash Dot Dot', Qt.DashDotDotLine)
self.penStyleComboBox.addItem('None', Qt.NoPen)

self.penCapComboBox = QComboBox()
self.penCapComboBox.addItem("Flat",Qt.FlatCap)
self.penCapComboBox.addItem('Square', Qt.SquareCap)
self.penCapComboBox.addItem('Round', Qt.RoundCap)

self.penJoinComboBox = QComboBox()
self.penJoinComboBox.addItem("Miter",Qt.MiterJoin)
self.penJoinComboBox.addItem('Bebel', Qt.BevelJoin)
self.penJoinComboBox.addItem('Round', Qt.RoundJoin)

self.brushStyleComboBox = QComboBox()
self.brushStyleComboBox.addItem("Linear Gradient",Qt.LinearGradientPattern)
self.brushStyleComboBox.addItem('Radial Gradient', Qt.RadialGradientPattern)
self.brushStyleComboBox.addItem('Conical Gradient', Qt.ConicalGradientPattern)
self.brushStyleComboBox.addItem('Texture', Qt.TexturePattern)
self.brushStyleComboBox.addItem('Solid', Qt.SolidPattern)
self.brushStyleComboBox.addItem('Horizontal', Qt.HorPattern)
self.brushStyleComboBox.addItem('Vertical', Qt.VerPattern)
self.brushStyleComboBox.addItem('Cross', Qt.CrossPattern)
self.brushStyleComboBox.addItem('Backward Diagonal', Qt.BDiagPattern)
self.brushStyleComboBox.addItem('Forward Diagonal', Qt.FDiagPattern)
self.brushStyleComboBox.addItem('Diagonal Cross', Qt.DiagCrossPattern)
self.brushStyleComboBox.addItem('Dense 1', Qt.Dense1Pattern)
self.brushStyleComboBox.addItem('Dense 2', Qt.Dense2Pattern)
self.brushStyleComboBox.addItem('Dense 3', Qt.Dense3Pattern)
self.brushStyleComboBox.addItem('Dense 4', Qt.Dense4Pattern)
self.brushStyleComboBox.addItem('Dense 5', Qt.Dense5Pattern)
self.brushStyleComboBox.addItem('Dense 6', Qt.Dense6Pattern)
self.brushStyleComboBox.addItem('Dense 7', Qt.Dense7Pattern)
self.brushStyleComboBox.addItem('None', Qt.NoBrush)

self.brushColorFrame = QFrame()
self.brushColorFrame.setAutoFillBackground(True)
self.brushColorFrame.setPalette(QPalette(Qt.green))
self.brushColorPushButton = QPushButton("更改")

labelCol=0
contentCol=1
#建立布局
mainLayout.addWidget(label1,1,labelCol)
mainLayout.addWidget(self.shapeComboBox,1,contentCol)
mainLayout.addWidget(label2,2,labelCol)
mainLayout.addWidget(self.widthSpinBox,2,contentCol)
mainLayout.addWidget(label3,4,labelCol)
mainLayout.addWidget(self.penColorFrame,4,contentCol)
mainLayout.addWidget(self.penColorPushButton,4,3)
mainLayout.addWidget(label4,6,labelCol)
mainLayout.addWidget(self.penStyleComboBox,6,contentCol)
mainLayout.addWidget(label5,8,labelCol)
mainLayout.addWidget(self.penCapComboBox,8,contentCol)
mainLayout.addWidget(label6,10,labelCol)
mainLayout.addWidget(self.penJoinComboBox,10,contentCol)
mainLayout.addWidget(label7,12,labelCol)
mainLayout.addWidget(self.brushStyleComboBox,12,contentCol)
mainLayout.addWidget(label8,14,labelCol)
mainLayout.addWidget(self.brushColorFrame,14,contentCol)
mainLayout.addWidget(self.brushColorPushButton,14,3)
mainSplitter1 = QSplitter(Qt.Horizontal)
mainSplitter1.setOpaqueResize(True)

stack1 = QStackedWidget()
stack1.setFrameStyle(QFrame.Panel|QFrame.Raised)
self.area = PaintArea()
stack1.addWidget(self.area)
frame1 = QFrame(mainSplitter1)
mainLayout1 = QVBoxLayout(frame1) #mainLayout1.setMargin(10)
mainLayout1.setSpacing(6)
mainLayout1.addWidget(stack1)

layout = QGridLayout(self)
layout.addWidget(mainSplitter1,0,0)
layout.addWidget(mainSplitter,0,1)
self.setLayout(layout)
#信号和槽函数 self.shapeComboBox.activated.connect(self.slotShape)
self.widthSpinBox.valueChanged.connect(self.slotPenWidth)
self.penColorPushButton.clicked.connect(self.slotPenColor)
self.penStyleComboBox.activated.connect(self.slotPenStyle)
self.penCapComboBox.activated.connect(self.slotPenCap)
self.penJoinComboBox.activated.connect(self.slotPenJoin)
self.brushStyleComboBox.activated.connect(self.slotBrush)
self.brushColorPushButton.clicked.connect(self.slotBrushColor)

self.slotShape(self.shapeComboBox.currentIndex())
self.slotPenWidth(self.widthSpinBox.value())
self.slotBrush(self.brushStyleComboBox.currentIndex())

def slotShape(self,value):
shape = self.area.Shape[value]
self.area.setShape(shape)
def slotPenWidth(self,value):
color = self.penColorFrame.palette().color(QPalette.Window)
style = Qt.PenStyle(self.penStyleComboBox.itemData(self.penStyleComboBox.currentIndex(),Qt.UserRole))
cap = Qt.PenCapStyle(self.penCapComboBox.itemData(self.penCapComboBox.currentIndex(),Qt.UserRole))
join = Qt.PenJoinStyle(self.penJoinComboBox.itemData(self.penJoinComboBox.currentIndex(),Qt.UserRole))
self.area.setPen(QPen(color,value,style,cap,join))
def slotPenStyle(self,value):
self.slotPenWidth(value)
def slotPenCap(self,value):
self.slotPenWidth(value)
def slotPenJoin(self,value):
self.slotPenWidth(value)
def slotPenColor(self):
color = QColorDialog.getColor(Qt.blue)
self.penColorFrame.setPalette(QPalette(color))
self.area.setPen(QPen(color))
def slotBrushColor(self):
color = QColorDialog.getColor(Qt.blue)
self.brushColorFrame.setPalette(QPalette(color))
self.slotBrush(self.brushStyleComboBox.currentIndex())
def slotBrush(self,value):
color = self.brushColorFrame.palette().color(QPalette.Window)
style = Qt.BrushStyle(self.brushStyleComboBox.itemData(value,Qt.UserRole))
if(style == Qt.Lin

B. PYQT设计完成,如何用python检测事件

答: 可以将事件连接到槽函数,然后在槽函数里面设置相关内容。这样的话每次事件触发时,槽函数里面的内容就可以执行,根据内容也就可以判断知道哪个事件被触发了。信号绑定槽函数的方法有如下所示。

就比如说你要捕获按钮的点击事件(clicked),当按钮(定义为btn)被点击后,我们调用一个on_click函数(这是我们自己定义的),那么最后的代码就是这样btn.clicked.connect(on_click),就可以把按钮的点击事件与槽函数相连。

C. python pyqt怎么学习

python 3.x 和 python 2.x 是Python发展的2个方向,你只要关注一个即可。选定之后,买一本书,开始学习。先抄上面的代码,能够运行起来。然后在做书上的题目,有什么问题就找人问。
做题目从最基本的题开始做,例如怎么使用 list, tuple, dict, set, 字符串等,
接下来是各种语句的练习,例如循环、分支、函数、名字空间、异常控制等等
第三步是python的标准库,这个库的内容非常之多,值得花很长的时间去学习。例如怎样计算时间,怎样做单元测试,怎样做高精度浮点数运算,怎样解析url,怎样做正则匹配等。
第四步是算法和数据结构,可以随便找本数据结构的书,想想C++能实现的这些数据结构和算法(比如快速排序),python怎么实现。
第五步是跟系统相关的学习,例如怎样创建进程、线程、环境变量、文件访问权限、注册表访问等。

等积累了一定数量的代码了(几千行),你就有经验了,然后就可以学习更多的内容。比如gui就选个PyQt学习一下,网络编程就选个Django学习一下,数据库嘛,就选个mysql-python学习学习就可以了

D. python 2.7 对应的pyqt 版本是多少

都可以的。推荐http://sourceforge.net/projects/winpython/files/?source=navbar
winPython 解压即用,放U盘里也行,目前python2.7用Qt4.8,推荐python3.4,有Qt5的支持

E. python2.7支持pyqt5么

当前Deadline7版本使用的是Python2.7+Qt5作为框架,来进行开发的,为了与之配合,做定制项目开发的时候,也需要同样的版本搭配。
相关推荐:《Python教程》
操作过程:
1、进行pip的安装目录。 Python27/Scripts目录下面。
2、执行 pip install python-qt5
3、OK,搞定,就这么简单。

F. pyqt4支持python2.7吗

支持的
首先安装python-2.7.6.amd64.msi,具体的配置步骤这里就不细说了,网络一下就解决了。
紧接着就是安装pycharm-professional-4.0.4.exe,这是一个python编辑器,比官方的编辑器好用得多,可以自动代码补全,还能调试运行,功能非常丰富!
再跟着就是安装PyQt4-4.11.2-gpl-Py2.7-Qt4.8.6-x64.exe,其实pyqt与C++的qt差不多的,用法都非常相似!
接着安装cx_Freeze-4.3.3.win-amd64-py2.7.msi,这个是用来打包Python程序为exe运行文件来用的,当然你也可以用其他的打包工具,但是我极力推荐这个。
最后要安装chardet-1.0.1-py2.5.egg.rar,这个是跟Python对文件的编码检测的一个开发包,网络一下就有地方下载了,python对文本处理非常强大,有它非常方便!
磨刀不误砍柴工,正式开工:
用pyqt4的界面设计工具–qt设计师,进行界面开发如下图:

pyqt4的界面设计工具非常简单易用,只要你用别的软件进行过控件开发,那么这个自然就会了!

如果还不明白就可以看“PyQt4 精彩实例分析(语法高亮带书签).pdf”,里面包含了很多示例。

界面设计完成后,保存得到以ui为后缀的文件,我的为“mainText.ui”,“configText.ui”两个文件,有了界面文件就要转换成Python能调用的包,具体转换的方法看“PyQt4

精彩实例分析(语法高亮带书签).pdf”中的示例。我的是分别转换成两个文件“ConfigText.py”,“SuperProcessText.py”。
至此开始正式编码的工作,主窗口运行文件是superTextProcessTool.py,配置窗口的运行文件是ConfigTextTool.py。
对于文件编码转换,控件之间如何调用,如何处理消息,都有了完整的示例,界面是仿照网上的一个软件做出来的-“超级文本处理工具”做出来的。如果碰到不懂的函数,那么可以查看“PyQt4.chm”,它包含了Pytqt4所有的函数说明!

G. pycharm 怎么安装pyqt

1、下载PyQt
操作系统是64位的,安装的是Python2.7.5,所以选择下载:PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x64.exe
单击安装即可。
2、配置PyCharm
File --> Settings --> External Tools --> 单击“ADD”(加号图标) --> 弹出对话框,做如下设置
1).设置“Qt Designer”-- 这个主要用来设计 Qt界面
在Qt Designer的设置中,Program选择PyQt安装目录中 designer.exe 的路径
Work directory 使用变量$ProjectFileDir$(点击后面的 Insert macro 按钮可以不用输入双击上屏)

2).设置“PyUIC”-- 这个主要是用来将 Qt界面 转换成 py代码
在PyUIC的设置中,其他的都差不多,Program 写入Python的地址,Parameters写入

复制代码
代码如下:
D:\Python\Python27\Lib\site-packages\PyQT4\uic\pyuic.py $FileName$ -o $FileNameWithoutExtension$.py

把上面的Python路径修改成自己的即可!
Work directory 使用变量$ProjectFileDir$

运行调试程序,带着QtGui的程序,之前按照,调试的时候,打个断点,点击那个爬虫,下面观察变量。

H. 如何使用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程序啦!

I. PYthon 小白问题:把程序导入写好的GUI里面(PYQT),出现错误:(见补充) 答对加分100!!!

TypeError: 'mole' object is not callable
去搜了下,原来是
你此处导出的是个模块,而模块本身是没法被调用的
解决办法是:
估计你是想要调用对应模块内的同名的函数。
所以,估计是把:
self.ui = Ui_caculator()
改成:
self.ui = Ui_caculator.Ui_caculator()

估计就可以了。

如果还不可以,自己到
你的calculator模块中,看看Ui_caculator部分的代码,看看对应的函数是什么。
然后调用对应的函数,就可以了。

热点内容
cvr网络存储 发布:2025-01-24 17:24:52 浏览:415
腿套压缩袜 发布:2025-01-24 17:05:16 浏览:458
电脑如何将安卓软件卸载干净 发布:2025-01-24 17:03:06 浏览:489
hello密码怎么破解 发布:2025-01-24 17:03:06 浏览:73
pspfifa无缓存 发布:2025-01-24 16:45:13 浏览:165
androidhandler机制 发布:2025-01-24 16:41:10 浏览:936
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:573
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:932
安卓80如何识别存储卡权限 发布:2025-01-24 16:19:54 浏览:232
存储介质价格 发布:2025-01-24 16:19:18 浏览:151