私は次の状況にあります:
- [UIの読み込み]ボタンは、中央のウィジェットレイアウトの一部です。
- 中央ウィジェットには、[UIのロード]ボタンの右側にQWidgetがあります。そのウィジェットのメインレイアウトには、さらに2つの空のレイアウトlay1とlay2があります
- [Uiのロード]をクリックすると、QLable(ここに印刷)とQPushButton(ラインエディターのロード)を持つUiフォームが、動的UIローダーを介してlay1にロードされます。
- [ラインエディタのロード]をクリックすると、QLineEditがlay2に追加されます
行編集のテキストを取得してQLabel( "ここに印刷")に印刷します
中間変数を作成せずにそれを行う方法がわかりません。
以下は、メインウィンドウクラス定義の一部です。
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
}