Qt - 小部件 - 更新

pra*_*ran 1 c++ user-interface qt

我有一个带按钮的小部件.我想,每按一下按钮,就会在小部件中添加一个标签.我给出了下面的代码,但是没有用.我不知道为什么.来人帮帮我?

class EditThingsWindow:public QWidget
{
    Q_OBJECT

    QPushButton * add;

public:
    EditThingsWindow();

public slots:
    void addButtonClicked();
};

EditThingsWindow::EditThingsWindow():QWidget()
{
    QWidget* wid = this;
    wid->resize(400,400);

    add=new QPushButton(wid);
    add->setText("Add");
    add->move(20,10);
    line=new QLineEdit(wid);
    line->move(30,50);

    QObject::connect(add,SIGNAL(clicked()),this,SLOT(addButtonClicked()));
}

void EditThingsWindow::addButtonClicked()
{
    QLabel* label = new QLabel(this);
    label->move(200,160);
    label->setText(";;;;;;;;;;;;;;");
 }
Run Code Online (Sandbox Code Playgroud)

Fre*_*red 5

每次单击按钮时,都会在EditThingsWindow中添加新的QLabel.但是,由于标签没有放置在布局中,并且它们都在相同的位置移动了相同的文本(因此大小相同),它们都显示在彼此的顶部,而你只能看到顶部的一个,这可能就是为什么你认为它们没有被添加.

将一个布局添加到EditThingsWindow小部件,并将每个新的QLabel添加到布局,您将看到所有标签出现.

  • @prabhkaran:尝试在addbuttonClicked()方法中调用label-> show().如果未插入布局,则新创建的窗口小部件可能不会自动显示. (2认同)