Russian Qt Forum
Июля 08, 2025, 00:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] Bug ли Qt 4.8.3 clicked signal QPushButton  (Прочитано 3542 раз)
daimon
Гость
« : Октября 10, 2012, 21:30 »

Код
C++ (Qt)
#include "m_metod_qt.h"
 
m_metod_qt::m_metod_qt(QWidget *parent, Qt::WFlags flags)
: QWidget(parent, flags)
{
ui.setupUi(this);
ui.plainTextEdit->setWordWrapMode(QTextOption::NoWrap);
connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
}
 
m_metod_qt::~m_metod_qt()
{
 
}
 
 
void m_metod_qt::on_pushButton_clicked()
{
qDebug()<<"test";
QString fname = QFileDialog::getOpenFileName(this,"","","");
m_metod sample(fname);
sample.metod();
ui.plainTextEdit->appendPlainText(sample.answer().c_str());
 
}
 
проблема в том, что при клике раз на кнопку, срабатывает 2 раза сигнал: один раз - открылся диалог, закрываю диалог и снова открывается второй раз диалог. Баг ли это?
« Последнее редактирование: Октября 10, 2012, 21:50 от daimon » Записан
V1KT0P
Гость
« Ответ #1 : Октября 10, 2012, 21:39 »

Дело в том, что слоты начинающиеся на "on_" автоматически коннектятся. Для действия кнопки clicked автоматом будет искаться слот on_BUTTONNAME_clicked() и автоматически подключаться. Закомментируй это и будет работать нормально:
Код
C++ (Qt)
connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
Записан
daimon
Гость
« Ответ #2 : Октября 10, 2012, 21:49 »

Дело в том, что слоты начинающиеся на "on_" автоматически коннектятся. Для действия кнопки clicked автоматом будет искаться слот on_BUTTONNAME_clicked() и автоматически подключаться. Закомментируй это и будет работать нормально:
Код
C++ (Qt)
connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));

спс, раньше с 4.7 нужно ещё было спец функцию вызывать для такого коннекта по on_, сейчас уже дальше пошло, я и не заметил))
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Октября 10, 2012, 23:03 »

эта функция вызывается в setupUi
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.251 секунд. Запросов: 23.