加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、安裝PyQt
    • 二、PyQt5主要類庫的功能介紹
    • 三、Hello World例子
    • 四、總結
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

用PyQt5做圖形界面(一)Hello world

2023/02/17
1208
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

PyQt是Python版本的Qt庫,是最常用的跨平臺圖形界面編程框架之一。代碼不用修改,就能同時運行在windows、linux、ios、andriod等平臺。因此,對芯片設計行業(yè)來說,既可以用來開發(fā)大型EDA工具(通常用Qt的C++庫),也可以用來開發(fā)公司內(nèi)部的flow工具,還可以用作應用工程師的測試工具。所以,今天,以Linux平臺為例,來介紹一下Python Qt的基本用法。

一、安裝PyQt

我們在venv虛擬環(huán)境下安裝PyQt5,方法如下:

# 建立python虛擬環(huán)境python3?-m venv?venv# 激活虛擬環(huán)境source?./venv/bin/activate# 通過阿里云pypi鏡像安裝PyQt5庫pip3 install -i https://mirrors.aliyun.com/pypi/simple PyQt5#?查看安裝了哪些第三方庫pip3 list

最后,可以再用pip3 list來確認安裝了哪些第三方庫,如下圖所示。

二、PyQt5主要類庫的功能介紹

PyQt5中包含了很多類別的庫,其中有三個庫最為常用:QtWidgets、QtGui、QtCore。

QtWidgets,我們需要的按鈕、文本框、下拉框、菜單、工具條等界面上顯示的東西都在這個庫里。

QtGui,這個庫里有各種事件的定義,比如單擊、文本框里文字改變,窗口關閉等,還包括了字體、剪貼板、調色板、圖形圖片等。

QtCore,這個庫里定義了各種數(shù)據(jù)類型、線程等非圖形界面的內(nèi)容。

三、Hello World例子

要求:我們來做一個輸入框和按鈕,點擊按鈕后把輸入框里的文字打印到終端。

示例代碼:

import sysfrom PyQt5.QtWidgets import (QApplication,                             QWidget,                             QVBoxLayout,                             QLineEdit,                             QPushButton)
# create an appapp = QApplication(sys.argv)
# create an empty windowwindow = QWidget()
# create a vertical box to contain all gui components, and add vbox to windowvbox = QVBoxLayout()window.setLayout(vbox)
# create a line edit in vboxedit = QLineEdit()vbox.addWidget(edit)
#?define?a?handle?function?for?buttondef say_hello():    txt = edit.text()    print('Hello ' + txt)
# create a button, and connect clicked event to the handle function in vboxbutton = QPushButton("Click Me")button.clicked.connect(say_hello)vbox.addWidget(button)
# show window and execute appwindow.show()ret = app.exec_()
# exit after the window is closedsys.exit(ret)

四、總結

本pyqt5 hello world示例,創(chuàng)建了一個文本框和一個按鈕,并且點擊按鈕與函數(shù)say_hello()相連。在文本框中輸入文字再點擊按鈕,就會在終端里打印出結果“Hello + 文本框內(nèi)容”。

本示例與其它pyqt5教程相比,并沒有使用class的寫法,而是直接用函數(shù),降低了學習門檻,更有利于初學者理解。

 

相關推薦

電子產(chǎn)業(yè)圖譜

公眾號ExASIC號主,從事數(shù)字IC設計10余年,主要分享日常工作中的經(jīng)驗和技巧,分享讓工作更輕松。