私はQt KDE Necessitasプロジェクトに取り組んでいます。Qt Creator でビルドされたプロジェクトがありapk
、エミュレーター API-15 (API-10 でもテスト済み) にインストールしています。
次のコードはQLineEdit
、ボタンがクリックされたときに 2 つの異なるオブジェクトのテキストをクリアするように設定されていますが、そうではありません。ランダムに、2 つのQLineEdit
オブジェクトのうちの 1 つだけがクリアされます。
メインウィンドウ.h:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
public slots:
void slotClear();
private:
QLineEdit* line1;
QLineEdit* line2;
//...
};
メインウィンドウ.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()
QLineEdit
私は Qt で長い間プログラミングを行っていないので、間違っていることがあるかどうかはわかりません。両方の QLineEdits からテキストをクリアするために、何かを修正する必要があるのを見ている人はいますか? これが Qt 自体に固有なのか、Qt Necessitas に固有なのかはわかりません。任意の入力をいただければ幸いです。
編集
また、ある行にテキストを入力し、別の行に切り替えてそこにテキストを入力し、元の行に戻すと、フィールドをクリックすると元のテキストが消去されることに気付きました (ボタンはクリックされていないことに注意してください)。 . これは、何かファンキーなことが起こっていることを明確に示していると思います。
編集2