pyqt5 获取布局后各控件的大小(label)

这个常识大家都不屑于写出来吗?我快找了一天都没找到,最后还是去了百度才知道怎么弄,算了大家不屑于写我写,给以后的脑子忘性大的我自己看。

获取组件的宽,控件的名字+width()

w=self.label.width()

同理长为控件名字+height()

h=self.label.height()

 获取长宽的组合

size=self.label.size()

看个实例,如图获取label的长宽

pyqt5 获取布局后各控件的大小(label)_第1张图片 

 我用了点击按钮获取label的长宽,所以而外写了一个函数,代码如下

    def get_size(self):
        w=self.label.width()#获取label宽
        h=self.label.height()#获取长
        size=self.label.size()
        print(size)
        print((w,h))

结果如下

pyqt5 获取布局后各控件的大小(label)_第2张图片 

完整代码如下,代码包括了构件一个pyqt5界面,但是没有设置布局(懒得弄了)

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow  #导入库
import sys                                            #导入库


class Ui_MainWindow(QMainWindow):#这一行的括号里要改成QMainWindow,也就是让 Ui_MainWindow 继承父类 QMainWindow
    # 初始化代码    主类继承QMainwindow父类,并初始化类
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.retranslateUi(self)


    def setupUi(self, MainWindow):#这里的MainWindow 是指要输入一个参数
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(310, 90, 181, 51))
        self.label.setObjectName("label")
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(310, 200, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(480, 0, 321, 51))
        self.lineEdit.setObjectName("lineEdit")
        self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser_2.setGeometry(QtCore.QRect(0, 0, 256, 192))
        self.textBrowser_2.setObjectName("textBrowser_2")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(620, 60, 93, 28))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menubar)
        self.menu_2.setObjectName("menu_2")
        self.menu3 = QtWidgets.QMenu(self.menubar)
        self.menu3.setObjectName("menu3")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.firsttry = QtWidgets.QAction(MainWindow)
        self.firsttry.setObjectName("firsttry")
        self.firsttry_2 = QtWidgets.QAction(MainWindow)
        self.firsttry_2.setObjectName("firsttry_2")
        self.try2 = QtWidgets.QAction(MainWindow)
        self.try2.setCheckable(False)
        self.try2.setObjectName("try2")
        self.try3_2 = QtWidgets.QAction(MainWindow)
        self.try3_2.setObjectName("try3_2")
        self.actionfile3 = QtWidgets.QAction(MainWindow)
        self.actionfile3.setObjectName("actionfile3")
        self.menu.addAction(self.firsttry)
        self.menu.addAction(self.firsttry_2)
        self.menu_2.addAction(self.try2)
        self.menu3.addAction(self.try3_2)
        self.menu3.addAction(self.actionfile3)
        self.menu3.addSeparator()
        self.menu3.addSeparator()
        self.menu3.addSeparator()
        self.menubar.addAction(self.menu.menuAction())
        self.menubar.addAction(self.menu_2.menuAction())
        self.menubar.addAction(self.menu3.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

        self.pushButton.clicked.connect(self.get_size)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow",
                                      "

label 标签:写文字的

")) self.textBrowser.setHtml(_translate("MainWindow", "\n" "\n" "

文本框,这是一些不可编辑的(运行之后)

")) self.lineEdit.setText(_translate("MainWindow", "其实就是一个文本框,运行后可随便编辑")) self.textBrowser_2.setHtml(_translate("MainWindow", "\n" "\n" "

包括这里也是,可随便编辑运行后。

\n" "

Ctrl+R 运行,可以预览一下。

\n" "

Push Button 是按钮,可触发一些函数、动作。

")) self.pushButton.setText(_translate("MainWindow", "按钮")) self.menu.setTitle(_translate("MainWindow", "文件")) self.menu_2.setTitle(_translate("MainWindow", "文件2")) self.menu3.setTitle(_translate("MainWindow", "3号")) self.firsttry.setText(_translate("MainWindow", "copy")) self.firsttry_2.setText(_translate("MainWindow", "file1")) self.try2.setText(_translate("MainWindow", "wenjian2")) self.try3_2.setText(_translate("MainWindow", "copy3")) self.actionfile3.setText(_translate("MainWindow", "file3")) def get_size(self): w=self.label.width()#获取label宽 h=self.label.height()#获取长 size=self.label.size() print(size) print((w,h)) if __name__ == '__main__': # QApplication下面画红色波浪线的就是没有的,需要引入进来 app = QApplication(sys.argv) # 建立一个app MainWindow7 = QMainWindow() # MainWindow1随便改 QMainWindow用MainWindow1实体化 ui = Ui_MainWindow() # ui随便改 ui把Ui_MainWindow实体化 ui.setupUi(MainWindow7) # 调用函数搭建MainWindow1组件 ui.label.setStyleSheet("background-color:gray;") MainWindow7.show() # 显示 sys.exit(app.exec_()) # 运行

 

 

参考链接:https://www.cnblogs.com/GavinSimons/p/8359284.html

 

你可能感兴趣的:(python)