int main(int ac, char **av)
{
QApplication app(ac, av);
Dialog *dialog = new Dialog();
dialog->show();
return app.exec();
}
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private slots:
void onLineEdit();
void onButtonClicked();
private:
Ui::Dialog *ui;
};
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
connect(ui->lineEdit, SIGNAL(editingFinished()), this, SLOT(onLineEdit()));
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::onLineEdit() {
qDebug() << QString("line edit finish");
}
void Dialog::onButtonClicked() {
qDebug() << QString("button clicked");
}
上記はデモコードですが、機能は非常に簡単で、インターフェイスは写真のとおりです。 The GUI interfaceQLineEditは、QGroupBoxをクリックしたときにフォーカスを解除しません。
この写真では、groupBoxはライン編集「&」プッシュボタンをラップします。 LineEditにテキストを入力したら、マウスを別の場所に移動しますが、groupBox内でLineEditはeditingfinished()信号を出力しません。
このような状況は、lineEditのフォーカスが失われないことを意味します。この問題は本当に奇妙です。何が間違っているのか教えてください。
ありがとうございます。
マウスを動かすだけですか他の場所をクリックしますか? – vahancho