[python] 5. pyqt5小技巧(待更)

一、Qlabel字體換行

a=QLabel("123")
a.setWordWrap(True)

二、窗口之間傳值

主窗口

class Panel3(QFrame):
    def __init__(self):
        super().__init__()
        self.diglog = AddDialog()
      
        self.addbtn=QPushButton(self)
        self.addbtn.setText("增加")
    

    def showaddDig(self):#點擊按鈕事件
        self.diglog.mySignal.connect(self.getlist) #彈窗的自定義信號 綁定窗口1的槽函數getlist
        self.diglog.show()#彈窗顯示
        pass

    def getlist(self,list):  #參數list 可獲得攜帶list信息的信號
        print("list"+str(list))
    
        self.diglog.mySignal.disconnect(self.getlist)  # 要斷開,否則關閉彈窗時會死機

子彈窗

class AddDialog(QDialog):

    mySignal= pyqtSignal(list)#自定義可攜帶list的信號

    def __init__(self):
        super().__init__()
        self.id=""
        self.name=""

        self.resize(600, 400)
        self.setWindowTitle("add")
        self.setWindowModality(Qt.ApplicationModal)#模態窗口,使得不關彈窗不能操作主窗口

        self.btn1=QPushButton("確定")
        self.btn1.clicked.connect(self.confirmbtn)
        self.btn2=QPushButton("取消")
        self.btn2.clicked.connect(self.cancelbtn)
 

        self.input1=QLineEdit("id1")
        self.res=QLineEdit("name1")


     
    def confirmbtn(self):#點擊確認按鈕
        tp=[]
        tp.append(self.input1.text())
        tp.append(self.res.text())
        
        #復位
        self.input1.setText("")
        self.res.setText("")
        
        
        self.mySignal.emit(tp)#發射帶着list信息的信號

        #由於信號已經綁定主窗口的槽函數getlist,所以發射信號的終點是槽函數getlist
        self.close()#關閉彈窗

    def cancelbtn(self):#點擊取消按鈕
        self.close()#關閉彈窗

 

三 讀取寫入遍歷csv

讀+遍歷,a,b是csv的列名

        reader = open("data/comments.csv", "r", newline='', encoding='utf-8-sig')
        csv_reader = csv.reader(reader)
        for a,b in csv_reader:
            print(str(a)+" "+str(b))

寫,a是用來往後加,w是用來替換

 list['a1','b1']
 writer = open("data/taobao_like.csv", "a", newline='', encoding='gbk')
 csv_writer = csv.writer(writer)
 csv_writer.writerow(list)
 writer.close()

 

四 lxml的使用

 from lxml import etree
 url="https://www.baidu.com"
 res1 = requests.get(url)
 res1.encoding = "gbk"
 dom = etree.HTML(res1.text)
 a_text = dom.xpath('//meta[@name="keywords"]/@content')  
 # 獲取meta下name=keywords的content屬性的內容

 

五 倒序遍歷 [::-1] 第三個參數是步長

刪除xxxList裏面的widgetItem會用上倒序遍歷

for i in range(0,self.input1.count())[::-1]:
    self.input1.removeItem(i)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章