2301_79944969 2024-02-22 12:23 采纳率: 50%
浏览 30
已结题

pyqt5设计界面控件之间的空白想消除

用pyqt5设计界面,其中有一个用户可以往一个布局器里面添加Qpushbutton的功能,但是添加的按钮之间空白很多

img

我想一开始添加的Qpushbutton就像这么紧密(就像下面很多按钮在一起时,按钮之间的空白很小)

img

我添加按钮的方式是,直接往相应的布局器里面添加Qpushbutton的

self.canva_area_layout.addWidget(btn)
        # 设置布局器的对齐方式为顶部对齐
self.canva_area_layout.setAlignment(btn, Qt.AlignTop) 

而且我试过self.canva_area_layout.setSpacing(0)的方法发现按钮之间空白没变化
希望能有简单的方法可以把按钮之间的空白修改,因为我要动态的添加按钮

    def AddButton(self):
        self.num_canvas+=1
        btn=QPushButton('darw canvas '+str(self.num_canvas))
        #btn信号怎么处理?#todo
        btn.clicked.connect(lambda checked, index=self.num_canvas - 1: self.switchToPage(index))
        self.canva_area_layout.addWidget(btn)
        # 设置布局器的对齐方式为顶部对齐
        self.canva_area_layout.setAlignment(btn, Qt.AlignTop)  # 修正对齐方式的设置

        btnToPage=right_thing_in_ToChoose()
        self.right_list.append(btnToPage)
        self.choose_area_layout.addWidget(self.right_list[-1])

不太想大改

  • 写回答

19条回答 默认 最新

  • Marst·Writer 2024-02-24 14:14
    关注

    问题点:按钮较少时,应该是希望按钮尽量在顶部紧凑的排列.
    解决办法:在添加完按钮,最后布局器使用 addStretch() 函数,可以把空白都占满. 这样按钮就可以全部挤到一起.

    img

            self.central_widget = QWidget()
            self.setCentralWidget(self.central_widget)
            self.main_layout = QVBoxLayout()
            self.central_widget.setLayout(self.main_layout)
           # 按钮对应的布局器
            self.canva_area_layout = QVBoxLayout()
            self.main_layout.addLayout(self.canva_area_layout)
    
            self.addButton = QPushButton("Add Button", self)
            self.addButton.clicked.connect(self.addButtonClicked)
            # 关键是这一行 添加伸缩项,填满空白处
            self.main_layout.addStretch(1)
            self.main_layout.addWidget(self.addButton)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(18条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月24日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住