效果图:

导航:

水平布局

网格布局

垂直布局

使用lable设置图片

radiobutton的使用


1水平布局

首先创建了一个QGroupBox,将三个按钮放在这个组件里
self.groupBox = QGroupBox(‘there are some buttons’)

然后创建一个水平布局对象
hboxlayout = QHBoxLayout()

按钮的创建及设置
button1 = QPushButton(‘enter’,self)
button1.setToolTip(‘button1’)
button1.setIconSize(QtCore.QSize(40,25))

将设置好的按钮放入这个水平布局中
hboxlayout.addWidget(button1)

创建多个按钮并执行同样的操作
可以将水平布局对象理解为一个窗口(widget),不过这个窗口是内嵌在主窗口中的.
最后将这个水平布局 hboxlayout 添加到 GroupBox中

    #创建一个包含三个按钮的groupBox组件,并设置这个组件里的元素为水平布局(VBoxLayout)def craetLayoyt(self):self.groupBox = QGroupBox('there are some buttons')hboxlayout = QHBoxLayout()button1 = QPushButton('enter',self)button1.setToolTip('button1')button1.setIconSize(QtCore.QSize(40,25))hboxlayout.addWidget(button1)button2 = QPushButton('cancle', self)button2.setToolTip('button2')button2.setIconSize(QtCore.QSize(40, 25))hboxlayout.addWidget(button2)button3 = QPushButton('back', self)button3.setToolTip('button3')button3.setIconSize(QtCore.QSize(40, 25))hboxlayout.addWidget(button3)self.groupBox.setLayout(hboxlayout)

完成上述工作后,需要把你的creatLayout添加到主窗口初始化

    def initWindow(self):self.setWindowTitle(self.title)self.setWindowIcon(QtGui.QIcon(self.iconname))self.setGeometry(self.left,self.top,self.width,self.height)self.craetLayoyt()self.createGridLayout()self.createMylable()self.myLableImg()self.myradiobutton()self.lable = QLabel('hello')#底部显示选中的状态#主窗口的布局是垂直排列的vbox = QVBoxLayout()vbox.addWidget(self.groupBox)vbox.addWidget(self.groupBox2)vbox.addWidget(self.groupBox3)vbox.addWidget(self.groupBox4)vbox.addWidget(self.groupBox5)vbox.addWidget(self.lable)self.setLayout(vbox)

2.网格布局

使用方法同水平布局一样
不同的是:将按钮或图片添加到布局中的时候,要设置按钮或图片的位置
gridlayout.addWidget(lableimg1,0,0)
参数0,0表示第一行第一个
如果参数是0.4,表示第一行的第五个位置,中间未指定的就空白留出

    #用lable添加一张图片def myLableImg(self):self.groupBox4 = QGroupBox('this is a lable contain a img')gridlayout = QGridLayout()lableimg1 = QLabel(self)pixmap = QPixmap('python.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,0,0)lableimg1 = QLabel(self)pixmap = QPixmap('logo.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,0,1)lableimg1 = QLabel(self)pixmap = QPixmap('ball.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,1,0)lableimg1 = QLabel(self)pixmap = QPixmap('qiuyi.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,1,1)self.groupBox4.setLayout(gridlayout)

3.垂直布局

使用方法同水平布局一样


4.添加图片到lable中

需要导入
import QPixmap

        lableimg1 = QLabel(self)pixmap = QPixmap('python.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,0,0)

5.源码:

import sysfrom PyQt5 import QtGui,QtCore
from PyQt5.QtWidgets import QApplication, QPushButton, QMainWindow, QDialog, QGroupBox, QHBoxLayout, QVBoxLayout, \QGridLayout, QLabel, QRadioButtonfrom PyQt5.QtGui import QPixmap
import timeclass window(QDialog):def __init__(self):super(window,self).__init__()self.title = 'pyqt5'self.left = 500self.top = 200self.width = 300self.height = 250self.iconname = 'python.png'self.initWindow()def initWindow(self):self.setWindowTitle(self.title)self.setWindowIcon(QtGui.QIcon(self.iconname))self.setGeometry(self.left,self.top,self.width,self.height)self.craetLayoyt()self.createGridLayout()self.createMylable()self.myLableImg()self.myradiobutton()self.lable = QLabel('hello')#底部显示选中的状态vbox = QVBoxLayout()vbox.addWidget(self.groupBox)vbox.addWidget(self.groupBox2)vbox.addWidget(self.groupBox3)vbox.addWidget(self.groupBox4)vbox.addWidget(self.groupBox5)vbox.addWidget(self.lable)self.setLayout(vbox)#创建一个包含三个按钮的groupBox组件,并设置这个组件里的元素为水平布局(VBoxLayout)def craetLayoyt(self):self.groupBox = QGroupBox('there are some buttons')hboxlayout = QHBoxLayout()button1 = QPushButton('enter',self)button1.setToolTip('button1')button1.setIconSize(QtCore.QSize(40,25))hboxlayout.addWidget(button1)button2 = QPushButton('cancle', self)button2.setToolTip('button2')button2.setIconSize(QtCore.QSize(40, 25))hboxlayout.addWidget(button2)button3 = QPushButton('back', self)button3.setToolTip('button3')button3.setIconSize(QtCore.QSize(40, 25))hboxlayout.addWidget(button3)self.groupBox.setLayout(hboxlayout)#创建包含四个组建的网格布局def createGridLayout(self):self.groupBox2 = QGroupBox('there are some buttons in a gridLayout')gridLayout = QGridLayout()button1 = QPushButton('enter',self)button1.setToolTip('button1')button1.setIconSize(QtCore.QSize(40,25))gridLayout.addWidget(button1,0,0)button2 = QPushButton('cancle', self)button2.setToolTip('button2')button2.setIconSize(QtCore.QSize(40, 25))gridLayout.addWidget(button2,0,1)button3 = QPushButton('back', self)button3.setToolTip('button3')button3.setIconSize(QtCore.QSize(40, 25))gridLayout.addWidget(button3,1,0)lable = QLabel('hello world')gridLayout.addWidget(lable,1,1)self.groupBox2.setLayout(gridLayout)#lable的创建,以及lable样式表def createMylable(self):self.groupBox3 = QGroupBox('there are some lables')vboxlayout = QVBoxLayout()lable1 = QLabel('today is tuesday')vboxlayout.addWidget(lable1)lable2 = QLabel('yestaday is tuesday')lable2.setFont(QtGui.QFont('Sanserif',20))lable2.setStyleSheet('color:red')vboxlayout.addWidget(lable2)lable3 = QLabel('tommorry is tuesday')vboxlayout.addWidget(lable3)self.groupBox3.setLayout(vboxlayout)#用lable添加一张图片def myLableImg(self):self.groupBox4 = QGroupBox('this is a lable contain a img')gridlayout = QGridLayout()lableimg1 = QLabel(self)pixmap = QPixmap('python.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,0,0)lableimg1 = QLabel(self)pixmap = QPixmap('logo.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,0,1)lableimg1 = QLabel(self)pixmap = QPixmap('ball.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,1,0)lableimg1 = QLabel(self)pixmap = QPixmap('qiuyi.png')lableimg1.setPixmap(pixmap)gridlayout.addWidget(lableimg1,1,1)self.groupBox4.setLayout(gridlayout)#radiobutton的使用def myradiobutton(self):self.groupBox5 = QGroupBox('there are some radiobuttons in a vboxlayout::which is your favourit programming language')self.groupBox5.setStyleSheet('color:red')self.groupBox5.setFont(QtGui.QFont('Sanserif',21))vboxlayout = QVBoxLayout()radiobtn1 = QRadioButton('python')radiobtn1.setChecked(True)#默认选中radiobtn1.setIcon(QtGui.QIcon('google.png'))radiobtn1.setIconSize(QtCore.QSize(25,25))radiobtn1.setFont(QtGui.QFont('Sanserif',16))radiobtn1.toggled.connect(self.onclickradiobtn)#添加槽vboxlayout.addWidget(radiobtn1)radiobtn2 = QRadioButton('c++')radiobtn2.setIcon(QtGui.QIcon('firefox.png'))radiobtn2.setIconSize(QtCore.QSize(25,25))radiobtn2.toggled.connect(self.onclickradiobtn)vboxlayout.addWidget(radiobtn2)radiobtn3 = QRadioButton('java')radiobtn3.setIcon(QtGui.QIcon('opera.png'))radiobtn3.setIconSize(QtCore.QSize(25,25))radiobtn3.toggled.connect(self.onclickradiobtn)vboxlayout.addWidget(radiobtn3)self.groupBox5.setLayout(vboxlayout)#设置radiobutton的点击事件def onclickradiobtn(self):radioBtn = self.sender()if radioBtn.isChecked():self.lable.setText('you have selected'+radioBtn.text())if __name__ == '__main__':app = QApplication(sys.argv)window = window()window.show()app.exit(app.exec_())
里边的图片注意自己替换

PyQt5:布局,pushbutton按钮,radiobutton按钮,lableImage设置图片的基本使用方法相关推荐

  1. 两个设置图片默认打开方式方法

    图 用什么软件打开,对于没什么要求的用户,可能就很随便了,但是对于有些要求的用户来说,简单的Windows 图片查看器肯定是不能满足要求的,所以可能会选用别的图像查看软件,这个时候,可能就需要切换或更 ...

  2. contos7改分辨率_centos7分辨率怎么设置-修改centos7分辨率的方法 - 河东软件园

    CentOS7.0是Linux发布的操作系统之一,在这款操作系统是基于Red Hat Linux研发的,每一个版本都可以保证十年的支持,并且是完全免费的.一般6个月更新一次,2年发布一次新品,Cent ...

  3. html中怎么设置图片平铺,css怎么把图片平铺?

    在网页设计的过程中,有时候可能会要求背景图片平铺,因为这样会让整个网页看起来比较好看,图片平铺可以不用具体设置body宽度和高度大小,就可以直接将图片平铺整个页面. 下面我们来看一下使用css设置图片 ...

  4. php 不要平铺的代码,css怎么设置图片不平铺

    css设置图片不平铺的方法:首先创建一个HTML示例文件:然后在style标签中添加"background:url(img/3.jpg)no-repeat;}"来设置图片不平铺即可 ...

  5. html img图片不平铺,如何在css中设置图片不平铺

    如何在css中设置图片不平铺 发布时间:2021-04-29 15:39:28 来源:亿速云 阅读:80 作者:Leah 这篇文章将为大家详细讲解有关如何在css中设置图片不平铺,文章内容质量较高,因 ...

  6. 给TextView设置图片的两种实现方法

    有时在开发过程中,我们会有在TextView中添加图片的需求(比如下图箭头所指文字中的表情).而在xml中对Textview进行属性设置时,只能设置图片在TextView的左.右.上.下四个位置,不能 ...

  7. UIBezierPath设置图片圆角

    一般我们都会通过Layer设置图片圆角,这种方法在iOS9以前可能会发生离屏渲染, 比较消耗性能,比如当一个页面上有十几头像这样设置了圆角会明显感觉到卡顿.这种就是最常用的,也是最耗性能的. imag ...

  8. PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度

    设置按钮可见度为 0 每种控件都有 3 种设置可见度为 0 的方法,下面来拿按钮的来举例了. # 标准的隐藏 # 方法一: self.pushButton_3.hide() # 方法二: self.p ...

  9. WPF RadioButton按钮控件取消选中设置

    WPF RadioButton按钮控件取消选中设置 通常我们使用的RadioButton控件选中之后就不能进行取消选中的操作,我上网查找到了解决方法,如下: 首先我们在View视图这里写这个按钮的点击 ...

最新文章

  1. 用window.open在同一个新窗口中访问指定url【IE页面缓存问题】
  2. change from a ppt to the report
  3. Apress Pro Android 2
  4. gin 生成api文档_gin-swagger 生成RESTful风格OpenAPI文档
  5. 基于公开数据的特殊人群在线活动特征挖掘
  6. 华为正式出售荣耀;圆通回应内鬼致 40 万条个人信息泄露;Spring Boot 2.3.6 发布|极客头条...
  7. Spark一系列入门流程
  8. default value mysql_Mysql Field * doesn't have a default value解决方法
  9. 张口就来!国家java认证考试报名入口
  10. JDK下载与安装教程(超详细)
  11. taobao.trades.sold.get-查询卖家已卖出的交易数据API接口,店铺交易API接口,店铺订单交易API接口,订单详情API接口,r2接口,淘宝oAuth2.0接口
  12. Java HashMap的遍历(常用的四种方式),及key,value规律
  13. 可以批量制作吊牌标签上的条码标签打印软件
  14. MFS分布式文件系统一
  15. 电脑无法分屏,连接两个显示器,但只能检测到一个显示器,且只有一个显示器有画面
  16. 关于DRV8303/8301电路框图
  17. 苹果笔记本python_python实现在mac笔记本上更换桌面背景
  18. 【ISAR成像定标方法(2)—平动目标ISAR成像的运动补偿方法MATLAB仿真】
  19. Linux:文件创建时间如何修改?
  20. bootstrap实现登录注册界面

热门文章

  1. 华为手机显示切换服务器,手机切换云服务器
  2. Freeman链码差分
  3. 戴尔电脑遇到问题,运行SupportAssist.更新后大部分问题可以解决。
  4. ubuntu 16.04执行apt-get update失败卡住的解决方法
  5. 【PP】PP 模块配置
  6. 学校食堂简易点餐管理系统(含用户登录且密码隐藏)C++
  7. 计算机联到同一个局域网,两台电脑连接同一个wifi算是局域网么
  8. 【考研政治】马哲常考的50个成语哲学原理总结 快码上!
  9. python发明家_Python版多图表范例
  10. TOI2008 大数运算