crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Сигнал/Слот проблемы
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
as001622 Дата 24.5.2008, 16:29
  Я тоже нашёл ответ на свой вопрос. В каждой функции, обрабатывающей события необходимо было вставить строку QAbstractButton::functionname(event).
Mixolap Дата 23.5.2008, 16:46
  Слоты должны быть определены в
private slots: или public slots:
AD Дата 23.5.2008, 9:09
  Со своей проблемой разобрался! Дело вот в чем. Все эти параметры привязываются к виджету при инициализации. ОБЯЗАТЕЛЬНО надо указывать виджет ДАННОГО класса. Т.е. в моем случае таким классом является
class QDialDistParam: public QDialog, public Ui::distParams

Значит, QWidget** tab_widgets должна быть переменной именно этого класса, а не класса TLV.
Ошибочным являлся следующий отрывок кода:
QWidget* wtab = main_window -> tab_widgets[k];
param_vec[index] -> chkParamName = new QCheckBox(wtab);
Litkevich Yuriy Дата 22.5.2008, 20:48
  ну если завтра будет время то попробую с компилить, а может на свежую голову и так увижу.
as001622 Дата 22.5.2008, 20:40
  да обычная кнопка работает
Litkevich Yuriy Дата 22.5.2008, 20:37
  а с обычной кнопкой работает этот же код? мне просто сейчас уже в лом, что либо компилить ;)
as001622 Дата 22.5.2008, 20:21
  пытался пользоваться слотом close() тот же результат. Вообще для main чтобы проверить работает ли кнопка будет достаточно
#include <QtGui/QApplication>
#include <QtGui/QVBoxLayout>
#include "MYbutton.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MYButton *button1=new MYButton;
    button1->setDefaulImageFileName(QString("images/default_button.png"));
    button1->setActionImageFileName(QString("images/action_button.png"));
    QObject::connect(button1,SIGNAL(clicked()),&a, SLOT(quit()));
    button1->show();
    return a.exec();
}


но всё равно не работает
Litkevich Yuriy Дата 22.5.2008, 20:02
  я слотом quit() не пользовался, но либо ты весь main показывай, либо если это весь, то закоментируй:
QWidget *window=new QWidget;
window->setStyleSheet("background: black");
т.к. у тебя этот виджет может не давать выйти из программы, если ты сделаешь его видимым show() от он будет в виде отдельного окна, а кнопка в виде другого.
as001622 Дата 22.5.2008, 19:51
  Это я ошибся когда скидывал, сокращал код, там должно стоять button1, но всё равно не работает
Litkevich Yuriy Дата 22.5.2008, 19:43
  as001622, вижу в main'е:
QObject::connect(button2,SIGNAL(clicked()),&a, SLOT(quit()));

но button2, в main'е нету!

---
P.S. Помни! параметры в функции QObject::connect() не проверяются компилятором полноценно! Ты должен сам за ними следить!
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 11:31