我正在使用Qt KDE Necessitas项目。我有一个在Qt Creator中构建的项目,我正在模拟器API-15(也在API-10上测试)上安装apk
。
以下代码设置为在单击按钮时清除两个不同QLineEdit
对象的文本,但情况并非如此。随机地,只清除了两个QLineEdit
对象中的一个。
mainwindow.h:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
public slots:
void slotClear();
private:
QLineEdit* line1;
QLineEdit* line2;
//...
};
mainwindow.cpp:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
QVBoxLayout* mainLayout = new QVBoxLayout;
QFormLayout* form = new QFormLayout;
line1 = new QLineEdit;
form->addRow(tr("Line 1: "), line1);
line2 = new QLineEdit;
form->addRow(tr("Line 2:"), line2);
QPushButton* button = new QPushButton;
mainLayout->addLayout(form);
mainLayout->addWidget(button);
QWidget* centralWid = new QWidget(this);
centralWid->setLayout(mainLayout);
this->setCentralWidget(centralWid);
connect(button, SIGNAL(clicked()), this, SLOT(slotClear()));
}
void MainWindow::slotClear()
{
line1->clear();
line2->clear();
}
//...
调用函数QLineEdit::setText("")
会产生相同的结果。此外,将来自按钮的clicked()
信号直接连接到clear()
的{{1}}广告位也无效。
我没有在Qt中编程很长时间,所以我不确定是否有错误。有没有人看到需要纠正的东西,以便从两个QLineEdits中清除文本?我不确定这是Qt本身或Qt Necessitas的独特之处。任何投入将不胜感激。
修改
我还注意到,在一行中输入文本,切换到另一行并在那里输入文本,然后切换回原始行会导致在单击字段后删除原始文本(注意,按钮是从未点击过)。我认为这是一个非常清楚的迹象,表明正在进行一些时髦的事情。
编辑2
使用KDE