知識回顧:
html
1.掌握Qpixmap圖片對象python
2.掌握qlabel控件裝載和調整圖片web
本節知識視頻教程編程
如下開始文字講解:ruby
1、目標案例:省市聯動選擇微信
1.須要兩個下拉列表app
2.點擊第一個下拉列表後,會聯動第二個列表中的內容ide
3.要求使用frame的絕對佈局函數
應用效果佈局
2、下拉框combobox使用
1.基本配置
主要用於選擇,好比省市聯動選擇必需要載入Qcombobox類。
實例化類爲一個對象,對這個對象進行配置,實則就是對下拉列表的配置。
combo1=QComboBox(myframe1) 在實例化的時候,要選擇父容器
combo1.move(20,0)
咱們經過addItem來往combobox中裝入項目。
combo1.addItem("選擇省份")
combo1.addItem("浙江")
combo1.addItem("江蘇")
combo1.addItem("安徽")
用到clear方法將全部項目進行清空。
2.下拉選擇事件
Combobox的點擊事件
理解爲激活actived信號。
信號有兩種傳遞方式:
第一種:傳遞字符串,這個實則傳遞的是選擇的文本。
combo1.activated[str].connect(自定義槽方法)
第二種:傳遞整型變量,這個傳遞的是選擇的索引。索引默認從0開始。
第一項的索引是0,第二項的索引是1,依次類推..
combo1.activated[int].connect(自定義槽方法)
省市聯動的combobox
注意:必需要將須要聯動的控件作成類對象的屬性。實際上就是加上self.
3、擴展知識內容
下拉列表框也能夠進行輸入,可是須要對方法進行配置。
配置setEditable 爲True:
combo1.setEditable(True)
對應的信號爲: editTextChanged
那麼咱們一樣能夠採用信號槽的方式實現編輯時候的事件處理函數。
得出的經驗特色:
咱們在書寫信號的時候,這些信號基本上都是以ed進行結尾的。
4、總結強調
1.掌握qcombobox的載入佈局與項目加載。
2.掌握下拉列表的編輯和對應事件。
3.掌握聯動的思想。
本節知識源代碼:
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QLabel,QComboBox,QFrame
class MyClass(QWidget): def __init__(self): super(MyClass, self).__init__() self.initUI()
def initUI(self): self.setWindowTitle("劉金玉編程") self.setGeometry(300,100,400,300)
myframe1=QFrame(self) myframe1.move(50,50) lbl1=QLabel("省",myframe1) lbl1.move(0,3) combo1=QComboBox(myframe1) combo1.move(20,0) # combo1.setEditable(True)
combo1.activated[str].connect(self.myActived)
#省份 combo1.addItem("選擇省份") combo1.addItem("浙江") combo1.addItem("江蘇") combo1.addItem("安徽")
#市級 lbl1 = QLabel("市", myframe1) lbl1.move(100, 3) self.combo2 = QComboBox(myframe1) self.combo2.move(120, 0)
self.show()
def myActived(self,s): self.combo2.clear() if s=="浙江": self.combo2.addItem("杭州") self.combo2.addItem("寧波") self.combo2.addItem("溫州") elif s=="江蘇": self.combo2.addItem("蘇州") self.combo2.addItem("無錫") self.combo2.addItem("揚州") self.combo2.addItem("南京")
if __name__=="__main__": app=QApplication(sys.argv) mc=MyClass() app.exec_()
長按關注公衆號
相關文章:
本文分享自微信公衆號 - 編程創造城市(bcczcs)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。