我的程序应该:从QLineEdits收集一些输入;将其转换为QStrings;将它添加到一些常量的QStrings;单击一个按钮时,在QTextEdit中输出所有内容。下边是 …
根据您提供的代码,您似乎不知道:
Qt有效 的 异步 强> ,例如。的价值 a 你得到的是在窗口显示之前,它会有什么价值?好吧,它会有一个空字符串,所以我应该在什么时候要求提供文字?在按下按钮时调用的插槽中。
a
具有相同名称的变量并不意味着它们是相同的,例如,您有2个带有文本名称的QTextEdit,这些是不同的对象。
因此,当您意识到对象(窗口小部件)必须具有相同的范围以便能够彼此交互时,所以我将创建一个继承自QWidget并且其他元素作为属性的类。
#include <QtGui> #include <QtCore> class Widget: public QWidget { Q_OBJECT public: Widget(QWidget *parent=nullptr): QWidget(parent) { QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(&label); layout->addWidget(&line); layout->addWidget(&button); layout->addWidget(&textedit); label.setText("Enter something:"); label.setAlignment(Qt::AlignHCenter); button.setText("Convert"); connect(&button, SIGNAL(clicked()), this, SLOT(onClicked())); } private slots: void onClicked(){ QString a = line.text(); QString b = "This line is to be added"; QString c = a+b; textedit.setText(c); // or textedit.append(c); } private: QLabel label; QLineEdit line; QPushButton button; QTextEdit textedit; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); Widget w; w.show(); return app.exec(); } #include "sample.moc"