0

我想在QComboBox. 但为此,我需要知道 QComboBox 的宽度。当我这样称呼时:

ui->qcombobox->width() 

我得到的值不正确(实际宽度约为 260 像素,但结果宽度始终为 100 像素)。

问题:

如何获得 QComboBox 的实际宽度?

或者

如何裁剪文本取决于 QComboBox 宽度?

4

1 回答 1

1

您正在调用ui->qcombobox->width()构造函数。Combobox 的大小尚未在此步骤中计算。您需要等到第一次showEvent发生。尝试这样的事情:

void MainWindow::showEvent(QShowEvent *e)
{
    QMainWindow::showEvent(e);
    qDebug() << ui->qcombobox->width();
}

为了在创建小部件时填充组合框,您需要执行以下操作:

void MainWindow::showEvent(QShowEvent *e)
{
    QMainWindow::showEvent(e);
    if (!mWasFilled) {
        mWasFilled = true;
        fillCombobox();
    }
}
于 2015-05-21T13:47:31.870 回答