當前位置:首頁 » 編程語言 » python27pyqt

python27pyqt

發布時間: 2023-07-15 02:59:03

『壹』 python2.7支持pyqt5么

當前Deadline7版本使用的是Python2.7+Qt5作為框架,來進行開發的,為了與之配合,做定製項目開發的時候,也需要同樣的版本搭配。
相關推薦:《Python教程》
操作過程:
1、進行pip的安裝目錄。 Python27/Scripts目錄下面。
2、執行 pip install python-qt5
3、OK,搞定,就這么簡單。

『貳』 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

『叄』 python3怎麼打包成exe

首先 PYTHON 是解釋行語言,無法直接生成EXE可執行文件。
第二如果非要生成EXE可執行文件,需要藉助工具和包來完成。 一般我們使用的mod
是PY2EXE這個 工具。
可以把PYTHON 的腳本和解釋器一起打包成二進制文件。
步驟:
1 到py2exe的官網下載程序,注意對應的python版本,比如所用的python版本為2.7,那麼就下載適配2.7版本的py2exe軟體
下載完成後安裝(與普通軟體安裝方式相同)
2 將要轉換的python腳本放到Python文件夾
在python的目錄下面,通常是(C:\Python27,看你安裝Python的位置)建立setup.py文件,文件中輸入以下代碼:
from distutils.core import setup
import py2exe
setup(console=["將要轉換的文件名稱.py"])
3 從終端(cmd)進入Python27目錄,輸入以下命令
python setup.py py2exe
這樣便完成了從.py文件到 .exe文件的轉換
生成的軟體在dist文件夾內

『肆』 如何使用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 pyqt4 無法調用matplotlib.pyplot包 請教

1、先設置好環境變數
在path變數中設置好以下路徑:
C:\Python27\Scripts
C:\Python27

2、大部分報錯問題都是因為庫與庫之間存在依賴關系
matplotlib依賴dateutil和pyparsing,如果Python裡面沒有安裝dateutil和pyparsing,那麼後續使用matplotlib的時候很可能會遇到依賴問題。所以需要安裝dateutil。

Matplotlib, a 2D plotting library.
Requires numpy, dateutil, pytz, pyparsing, cycler, setuptools, and optionally pillow, pycairo, tornado, wxpython, pyside, pyqt4, ghostscript, miktex, ffmpeg, mencoder, avconv, or imagemagick.
所以上面這些包肯定是都需要有的,如果沒有遇到問題,可能是因為代碼中沒有引用這些包而已;或者已經安裝了。

2.1、使用easy_install.exe來安裝所需要依賴的包
現在dateutil使用easy_install命令來安裝,(easy_install會自己從網路上需要最新的合適的包來安裝,所以不需要你自己去尋找和下載)
只需要輸入 easy_install python-dateutil 命令就可以。
如果找不到easy_install 命令,要麼是你的環境變數沒有設置好,請參考1。要麼是你的python包太老,沒有預裝easy_install,那就參考3,先安裝easy_install

3、安裝easy_install.exe, 手動下載安裝包到本地安裝

找到ez_setup.py文件,下載到本地E:\iso\VisualStudio2010\ (我是下載到這里,你自己就隨意吧)
在cmd窗口下面,輸入:
Python E:\iso\VisualStudio2010\ez_setup.py
成功後,C:\Python27\Scripts\目錄下會多了easy_install.exe

4、使用easy_install.exe安裝dateutil和pyparsing。。
反正根據提示,缺啥就用easy_install安裝啥,這個easy_install是按照關鍵字來搜索安裝包的。
easy_install python-dateutil
easy_install pyparsing
easy_install pip

4.1、如果不用easy_install.exe安裝,也可以使用pip通過本地安裝或者網路安裝
使用pip安裝 的命令是: pip install numpy
如果要手動把包下載到本地再安裝,請參考6

5、把路徑如:C:\Python27\Lib\site-packages\scipy\lib中的six.py six.pyc six.pyo三個文件拷貝到C:\Python27\Lib\site-packages目錄下。

6、使用下載到本地的whl來安裝各種包
在下面頁面下載所對應的32bit或者64bit,區分python2.7還是python3的

numpy-1.11.1+mkl-cp27-cp27m-win_amd64.whl
pandas-0.18.1-cp27-cp27m-win_amd64.whl
scipy-0.17.1-cp27-cp27m-win_amd64.whl
matplotlib-1.5.2-cp27-cp27m-win_amd64.whl
把上面這些需要的whl放到python的scripts目錄下,然後用下面的命令來安裝即可
c:\Python27-x64\Scripts>
pip install pandas-0.18.1-cp27-cp27m-win_amd64.whl

『陸』 python的spyder怎麼打開,或者具體的安裝教程

1、安裝spyder
打開https://pypi.python.org/pypi/spyder
下載裡面最新的源碼zip包,在本地解壓後,cmd里cd到解壓的目錄下
python setup.py install

很簡單的安裝,安裝過程中也沒報什麼錯誤。
安裝後,在python安裝目錄下的Scripts下面會有一個spyder.bat,運行它就可以啟動Spyder
如果你的系統變數里包含了這個Scripts目錄,那麼你在cmd中輸入spyder也可以啟動。
(我的系統變數Path是這樣設置的: ;%PYTHON_HOME%;%PYTHON_HOME%\Scripts )

2、安裝PyQt4
由於Spyder是基於PyQt4的,所以如果你啟動Spyder報錯誤:
就安裝個PyQt4 4.6+版本就可以
在windows上安裝PyQt4,為了簡單安裝,還是直接安裝whl格式的安裝包,這種包是經過編譯的,安裝速度比較快。
(如果你之前沒安裝過wheel模塊,你只需要
pip install wheel


打開http://www.lfd.uci.e/~gohlke/pythonlibs/#pyqt4
下載裡面相對應python版本、系統版本的whl文件
這里我下載了個PyQt4-4.11.4-cp27-none-win32.whl
cmd里cd到該whl文件目錄下
pip install PyQt4-4.11.4-cp27-none-win32.whl

安裝後,你在python裡面輸入
import PyQt4
沒報錯就說明安裝成功
3、一些小問題
老實說,這窗體的panel拖曳不是很方便,如果拖動得窗體都亂了樣,只需要在「View」→"Reset Window Layout"即可。
----
如果在運行py文件的時候報警告:
裡面說沒控制台被選擇,這時候你得在"View"→"Panes"→"Console"觀看下,看看是有什麼問題。
另外也可以在"Run"→"Configure"里,設置"Execute in a new dedicated Python console",這時候再運行py文件試試下。

熱點內容
如何去掉僅限自動配置 發布:2025-02-08 14:37:55 瀏覽:704
壓縮空氣有啥 發布:2025-02-08 14:26:01 瀏覽:703
python輸入一個數 發布:2025-02-08 14:26:00 瀏覽:449
普惠e卡最初密碼是多少 發布:2025-02-08 14:21:57 瀏覽:475
亞索後q腳本 發布:2025-02-08 14:21:06 瀏覽:324
官方源碼 發布:2025-02-08 14:09:25 瀏覽:437
python過濾器 發布:2025-02-08 14:05:06 瀏覽:617
火山幣演算法 發布:2025-02-08 14:04:49 瀏覽:669
jffs2解壓 發布:2025-02-08 13:55:15 瀏覽:388
如何向伺服器發送大數據包 發布:2025-02-08 13:55:12 瀏覽:662