使用PyQT调整小部件的大小

2024-09-30 14:31:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python和PyQT的初学者。我尝试使用QGridLayout来制作GUI,但是当我放置一个图像时,我遇到了一些问题。这就是没有图像时的样子:

无图像图片

对我来说不错。但是,当我尝试在右上角添加图像时,我得到:

带图像的图片

显然这不是我想要的(我希望这个小部件的大小与第一张图像的大小相同,即与原始标题大小大致相同)。代码有点长,所以我只发布了部分网格:

    wid = QWidget(self)
    self.setCentralWidget(wid)
    grid = QGridLayout()
    title = QLabel(self)
    newfont = QFont("Times", 20, QFont.Bold)
    title.setText('Interfaz Gráfica PIC18F4550')
    title.setFont(newfont)
    title.setAlignment(Qt.AlignCenter)

    pic = QLabel(self)
    pic.setPixmap(QtGui.QPixmap('escudo.gif'))

    m = PlotCanvas(self, width=5, height=4)
    connect_btn = QPushButton('Conectar', self)
    connect_btn.setIcon(QIcon('lautaro.jpeg'))
    connect_btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    exit_btn = QPushButton('Salir', self)
    exit_btn.setIcon(QIcon('lautaro.jpeg'))
    exit_btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    disconnect_btn = QPushButton('Desconectar', self)
    disconnect_btn.setIcon(QIcon('lautaro.jpeg'))
    disconnect_btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    frequency_btn = QPushButton('Frecuencia', self)
    frequency_btn.setIcon(QIcon('lautaro.jpeg'))
    frequency_btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    duty_cycle_btn = QPushButton('Duty Cycle', self)
    duty_cycle_btn.setIcon(QIcon('lautaro.jpeg'))
    duty_cycle_btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
    grid.addWidget(connect_btn, 1, 0, 2, 1)
    grid.addWidget(disconnect_btn, 3, 0, 2 ,1)
    grid.addWidget(exit_btn, 5, 0, 2, 1)
    grid.addWidget(m, 1, 1, 6, 1)
    grid.addWidget(frequency_btn, 1, 2, 3, 1)
    grid.addWidget(duty_cycle_btn, 4, 2, 3, 1)
    grid.addWidget(title, 0, 1)
    grid.addWidget(pic, 0, 2)
    wid.setLayout(grid)

所以,问题是:如何设置控件大小?显然,在这种情况下,与标题和标签相关的小部件要比按钮和图形大得多。在


Tags: 图像selftitlegridjpegpreferredbtnqpushbutton
1条回答
网友
1楼 · 发布于 2024-09-30 14:31:55

如果希望图像始终具有相同的大小,可以按如下方式设置固定的宽度和高度:

pic = QLabel(self)
pic.setPixmap(QtGui.QPixmap('escudo.gif'))
pic.setFixedWidth(250)
pic.setFixedHeight(250)

如果希望图像具有最大大小,但如果窗口变小,则应调整大小并变小,则可以使用以下方法:

^{pr2}$

相关问题 更多 >