我有以下情况:
- 加载 Ui 按钮是中央小部件布局的一部分。
- 中央小部件在 Load Ui 按钮的右侧有一个 QWidget。该小部件的主布局还有两个空布局lay1和lay2
- 单击加载 Ui 时,通过动态 ui 加载器将具有 QLable(在此处打印)和 QPushButton(加载行编辑器)的 Ui 表单加载到lay1。
- 单击加载线编辑器会将 QLineEdit 添加到lay2
现在我想获取行编辑文本并将其打印到 QLabel("Print here")
我不知道如何在不产生任何中间变量的情况下做到这一点。
以下是主窗口类定义的一部分:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
lay1 = new QHBoxLayout;
lay2 = new QHBoxLayout;
laymain = new QVBoxLayout;
laymain->addLayout(lay1);
laymain->addLayout(lay2);
ui->widget->setLayout(laymain);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(LoadEdit()));
}
void MainWindow::LoadEdit()
{
if(lay1->isEmpty())
{
QUiLoader load;
QFile file("E:\\WorkFolder\\Qt\\ValueOfFilter\\PrintValue.ui");
file.open(QIODevice::ReadOnly);
QWidget * edit = load.load(&file,this);
lay1->addWidget(edit,Qt::Horizontal);
edit->addAction(act);
QPushButton * textbutton = edit->findChild<QPushButton*>("pushButton");
connect(textbutton,SIGNAL(clicked()),this,SLOT(LoadEditClicked()));
}
void MainWindow::LoadEditClicked()
{
if(lay2->isEmpty())
{
QLineEdit * lineedit = new QLineEdit;
lay2->addWidget(lineedit);
}
//want to take text from lineedit and print it to label
}