中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用

發布時間:2021-06-18 09:22:13 來源:億速云 閱讀:211 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用”這篇文章吧。

PyQt5布局控件QGridLayout簡介

QGridLayout(網格布局)是將窗口分割成行和列的網格來進行排列,通常可以使用函數addWidget()將被管理的控件(Widget)添加到窗口中,或者使用addLayout()函數將布局(layout)添加到窗口中,也可以通過addWIdget()函數對所添加的控件設置行數與列數的跨越,最后實現網格占據多個窗格

QGridLayout類中常用的方法

方法描述
addWidget(QWidget Widget,int row,int col,int alignment=0)給網格布局添加部件,設置指定的行和列,起始位置的默認值為(0,0)

widget:所添加的控件

row:控件的行數,默認從0開始

column:控件的列數,默認從0開始

alignment:對齊方式
addWidget(QWidget widget,int fromRow,int fromColulmn,int rowSpan,int columnSpan,Qt.Alignment alignment=0)所添加的的控件跨越很多行或者列的時候,使用這個函數

widget:所添加的控件

fromRow:控件的起始行數

fronColumn:控件的起始列數

rowSpan:控件跨越的行數

column:控件跨越的列數

alignment:對齊方式
setSpacing(int spacing)設置軟件在水平和垂直方向的間隔

QGridLayout單一的網格單元格實例

import sys
from PyQt5.QtWidgets import QApplication ,QWidget , QGridLayout, QPushButton
class Winform(QWidget):
  def __init__(self,parent=None):
    super(Winform,self).__init__(parent)
    self.initUI()
  def initUI(self):      
    #1創建QGridLayout的實例,并設置窗口的布局
    grid = QGridLayout() 
    self.setLayout(grid) 
    #2創建按鈕的標簽列表
    names = ['Cls', 'Back', '', 'Close', 
         '7', '8', '9', '/', 
        '4', '5', '6', '*', 
         '1', '2', '3', '-', 
        '0', '.', '=', '+'] 
    #3 在網格中創建一個位置列表    
    positions = [(i,j) for i in range(5) for j in range(4)] 
    #4 創建按鈕并通過addWIdget()方法添加到布局中
    for position, name in zip(positions, names):        
      if name == '': 
        continue 
      button = QPushButton(name) 
      grid.addWidget(button, *position) 
    self.move(300, 150) 
    self.setWindowTitle('網格布局管理例子') 
if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    form = Winform()
    form.show()
    sys.exit(app.exec_())

運行效果圖如下

python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用

第一組代碼:創建QGridLayout的實例,并設置窗口的布局

第二組代碼:創建按鈕的標簽列表

第三組代碼:在網格中創建一個位置列表

第四組代碼:創建按鈕并通過addWIdget()方法添加到布局中

QGridLayout跨越行和列的網格單元格實例

import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit,  QTextEdit, QGridLayout, QApplication) 
class Winform(QWidget):
  def __init__(self,parent=None):
    super(Winform,self).__init__(parent)
    self.initUI()
  def initUI(self):      
    titleLabel = QLabel('標題') 
    authorLabel = QLabel('提交人') 
    contentLabel = QLabel('申告內容') 
    titleEdit = QLineEdit() 
    authorEdit = QLineEdit() 
    contentEdit = QTextEdit() 
    grid = QGridLayout() 
    grid.setSpacing(10) 
    grid.addWidget(titleLabel, 1, 0) 
    grid.addWidget(titleEdit, 1, 1) 
    grid.addWidget(authorLabel, 2, 0) 
    grid.addWidget(authorEdit, 2, 1) 
    grid.addWidget(contentLabel, 3, 0) 
    grid.addWidget(contentEdit, 3, 1, 5, 1) 
    self.setLayout(grid)  
    self.setGeometry(300, 300, 350, 300) 
    self.setWindowTitle('故障申告')
if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    form = Winform()
    form.show()
    sys.exit(app.exec_())

運行效果示意圖如下

python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用

代碼分析

把titleLabel放在QGridLayout布局的第一行第0列

grid.addWidget(titleLabel, 1, 0)  

把titleEditl放在QGridLayout布局的第一行第1列

grid.addWidget(titleEdit, 1, 1)  

把contentLabel放在QGridLayout布局的第3行第0列

grid.addWidget(contentLabel, 3, 0)  

把contentEdit放在QGridLayout布局的第3行第1列,跨越5行1列

grid.addWidget(contentEdit, 3, 1, 5, 1)

以上是“python中GUI庫圖形界面開發之PyQt5布局控件QGridLayout怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绍兴县| 图木舒克市| 宁乡县| 棋牌| 瓮安县| 桂林市| 綦江县| 吴堡县| 阿克苏市| 林西县| 北碚区| 兴化市| 东乡族自治县| 玛沁县| 托克逊县| 分宜县| 汽车| 陵川县| 方正县| 织金县| 乌拉特中旗| 名山县| 蒙自县| 凤冈县| 田东县| 德保县| 枞阳县| 霸州市| 高尔夫| 开江县| 祁门县| 庐江县| 嘉峪关市| 鱼台县| 随州市| 涡阳县| 八宿县| 宣恩县| 新竹市| 犍为县| 鹤岗市|