當前位置:首頁 » 編程語言 » 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