首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置宽度QVboxLayout

如何设置宽度QVboxLayout
EN

Stack Overflow用户
提问于 2020-05-12 03:12:28
回答 1查看 1.1K关注 0票数 2
代码语言:javascript
复制
import sys
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import QApplication,QDialog,QPushButton,QVBoxLayout,QWidget


class Main(QDialog):
    def __init__(self):
        super(Main, self).__init__()
        self.ui()

    # Group Of Drage Event
    def mousePressEvent(self,event):
        self.offset = event.pos()

    def mouseMoveEvent(self, e):
        x = e.globalX()
        y = e.globalY()
        x_w = self.offset.x()
        y_w = self.offset.y()
        self.move(x - x_w, y - y_w)

    def ui(self):
        # TitleBar
        self.setWindowFlags(Qt.FramelessWindowHint)

        # Window Size
        self.setGeometry(600,300,400,500)

        # Window Background Color
        self.BackGroundColor = QPalette()
        self.BackGroundColor.setColor(QPalette.Background, QColor(255,255,255))
        self.setPalette(self.BackGroundColor)

        # NavBar Button
        self.btn = QPushButton('Test',self)
        self.btn1 = QPushButton("Test1",self)

        # NavBar Layout
        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.btn)
        self.layout.addWidget(self.btn1)
        self.layout.set
        self.setLayout(self.layout)

        # Close img
        self.closeBtn = QPushButton(self)
        self.closeBtn.setGeometry(368,0,32,32)
        self.closeBtn.setFlat(True)
        self.closeBtn.setStyleSheet('QPushButton{background-color: rgba(0,0,0,0.0)}')
        self.closeBtn.setIcon(QIcon('img/close.png'))
        self.closeBtn.setIconSize(QSize(10,10))
        self.closeBtn.clicked.connect(QCoreApplication.instance().quit)

        # Maximize icon
        self.maxBtn = QPushButton(self)
        self.maxBtn.setGeometry(self,336,0,32,32)
        self.maxBtn.setFlat(True)
        self.maxBtn.setStyleSheet('QPushButton{background-color: rgba(0,0,0,0.0)}')
        self.maxBtn.setIcon(QIcon('img/max.png'))
        self.maxBtn.setIconSize(QSize(14,14))

        # Minimize Incon
        self.minBtn = QPushButton(self)
        self.minBtn.setGeometry(304,0,32,32)
        self.minBtn.setFlat(True)
        self.minBtn.setStyleSheet('QPushButton{background-color: rgba(0,0,0,0.0)}')
        self.minBtn.setIcon(QIcon('img/min.png'))
        self.minBtn.setIconSize(QSize(10,10))


def main():
    app = QApplication()
    win = Main()
    win.show()
    app.exec_()

if __name__ == "__main__":
    main()

我想修左边的肚脐。因此,我创建QVBoxLayout实例并将小部件添加到布局中。我搜索了谷歌,堆叠溢出。我没有任何关于我的问题的信息

但我不知道如何设置布局部件。请教我。谢谢。

如果你不理解我的文字,请告诉我我会描述

版本:

5.14.2.1

  • Python 3.7.7
  • PySide
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 10:42:12

布局不是视觉元素,所以它们没有任何与它们相关的几何元素,例如宽度大小,布局是大小和位置的句柄。

在这种情况下,解决方案是建立一个大小固定的容器,并在该容器中通过布局放置按钮:

代码语言:javascript
复制
class Main(QDialog):
    def __init__(self):
        super(Main, self).__init__()
        self.ui()

    # Group Of Drage Event
    def mousePressEvent(self, event):
        self.offset = event.pos()

    def mouseMoveEvent(self, e):
        x = e.globalX()
        y = e.globalY()
        x_w = self.offset.x()
        y_w = self.offset.y()
        self.move(x - x_w, y - y_w)

    def ui(self):
        # TitleBar
        self.setWindowFlags(Qt.FramelessWindowHint)

        # Window Size
        self.setGeometry(600, 300, 400, 500)

        # Window Background Color
        self.BackGroundColor = QPalette()
        self.BackGroundColor.setColor(QPalette.Background, QColor(255, 255, 255))
        self.setPalette(self.BackGroundColor)

        # NavBar Button
        self.btn = QPushButton("Test")
        self.btn1 = QPushButton("Test1")

        left_container = QWidget(self)
        left_container.setFixedWidth(100)
        # NavBar layout
        self.layout = QVBoxLayout(left_container)
        self.layout.addWidget(self.btn)
        self.layout.addWidget(self.btn1)

        hlay = QHBoxLayout(self)
        hlay.addWidget(left_container)
        hlay.addStretch()

        # Close img
        self.closeBtn = QPushButton(self)
        self.closeBtn.setGeometry(368, 0, 32, 32)
        self.closeBtn.setFlat(True)
        self.closeBtn.setStyleSheet("QPushButton{background-color: rgba(0,0,0,0.0)}")
        self.closeBtn.setIcon(QIcon("img/close.png"))
        self.closeBtn.setIconSize(QSize(10, 10))
        self.closeBtn.clicked.connect(QCoreApplication.instance().quit)

        # Maximize icon
        self.maxBtn = QPushButton(self)
        self.maxBtn.setGeometry(336, 0, 32, 32)
        self.maxBtn.setFlat(True)
        self.maxBtn.setStyleSheet("QPushButton{background-color: rgba(0,0,0,0.0)}")
        self.maxBtn.setIcon(QIcon("img/max.png"))
        self.maxBtn.setIconSize(QSize(14, 14))

        # Minimize Incon
        self.minBtn = QPushButton(self)
        self.minBtn.setGeometry(304, 0, 32, 32)
        self.minBtn.setFlat(True)
        self.minBtn.setStyleSheet("QPushButton{background-color: rgba(0,0,0,0.0)}")
        self.minBtn.setIcon(QIcon("img/min.png"))
        self.minBtn.setIconSize(QSize(10, 10))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61743154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档