问题与QLineEdit清除信号

时间:2012-11-08 22:03:10

标签: c++ qt signals-slots qt-necessitas

我正在使用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

Registered as a bug

0 个答案:

没有答案