crossplatform.ru

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

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Не могу разобраться с combobox и QpushButton, Как сделать кнопочку автивно при выборе элемента?
Andrewshkovskii
  опции профиля:
сообщение 27.12.2008, 16:09
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Сабж. Я только сегодня сел изучать Qt.. но никак не могу понять ,как реализовать сабж.
Допустим есть кнопочка :

QPushButton *choose = new QPushButton("Выбрать!");

и выпадающий список :
QStringList list;
list << " " << "profile 1" << "profile 2" << "profile 3" << "profile 4" << "profile 5";
QComboBox *combobox = new QComboBox;
combobox->addItems(list);

Я так понимаю, что надо написать фукнцию, которая будет вызываться как сигнал, при выборе хотя бы одного элемента, так?
Как её можно реализовать?Какой слот или сигнал есть у комбобокса, возвращающий какое-либо значение, когда выбран элемент?
Ещё вопрос :
Как сделать в списке пустой элемент?Я имею ввиду не " " - т.к это тоже элемент списка, и в моем случае, при его выборе, кнопка будет активной.Я про пустой не выбираемый элемент.

Тоже самое мне надо реализовать для флажкой(QCheckBox).т.е , есть флажок, и таже самая кнопочка.
Подскажите, пожалуйста..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.12.2008, 16:20
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Andrewshkovskii, задачу я не понял. Расскажи без кода, просто на словах, что делает пользователь - что он видит.

Цитата(Andrewshkovskii @ 27.12.2008, 19:09) *
Какой слот или сигнал есть у комбобокса, возвращающий какое-либо значение, когда выбран элемент?
слот не возвращает значение, а принимает. См. документацию QComboBox подраздел Сигналы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 27.12.2008, 16:28
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Хорошо, это сейчас полистаю.а что насчет "пустого" элемента?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.12.2008, 16:34
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 27.12.2008, 19:28) *
а что насчет "пустого" элемента?
а вот я не понял, что ты под этим понимаешь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 27.12.2008, 16:36
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Ну..я попробывал через сигнал activated(),
QObject::connect(combobox,SIGNAL(activated(1)),mw,SLOT(show()));, вот так, mw- виджет.== ничего не происходит.

Ну пустой элемент в моем понимании - это нулевое значение списка,тоесть НИЧЕГО НЕ ВЫБРАНО. и отображается как пустота в списке..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.12.2008, 17:06
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 27.12.2008, 19:36) *
QObject::connect(combobox,SIGNAL(activated(1)),mw,SLOT(show()));
тут полная ересь, что за еденичка? Читай про сигналы и слоты.
А также про функцию QObject::connect

Цитата(Andrewshkovskii @ 27.12.2008, 19:36) *
ничего не происходит.
на самом деле происходит. чтобы видеть, что происходит, добавь в свой pro-файл такую строку:
CONFIG += console

сделай
qmake
make

и после запуска приложения у тебя появится консоль, в которую Qt будет сообщать об ошибка времени выполнения связанных либо с сигналами/слотами, либо с метаобъектной информацией, а также о драйверах СУБД.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.12.2008, 18:08
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Andrewshkovskii, если еще не понял ошибку с соединением, глянь в FAQ, набросал наскору руку: Сигналы и слоты (Qt).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 27.12.2008, 18:28
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Да я щас сижу код свой переписываю, с дуру начал писать без классов, просто сплошняком.щас доперепишу, буду разбираться..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.12.2008, 18:34
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 27.12.2008, 21:28) *
с дуру начал писать без классов, просто сплошняком.щас доперепишу, буду разбираться..
для мелких примеров можно и без классов.
Замечание: При написании класса разделяй интерфес от реализации на два отдельных файла *.h и *.cpp (иначе прийдется руками инклюдить продукт деятельности MOC'а)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 27.12.2008, 19:01
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Да это я знаю, я на с++ пишу уже 2 года... сегодня сел просто за Qtшечку, и есть некоторые не понятки. Ну там как пример..диалоговое окно, там по критериям надо выбрать веб-почту ...

И так, проблема.
Пытаюсь объявить закрытый слот :
#ifndef MAIN_CHOOSE_H_
#define MAIN_CHOOSE_H_
#include <QWidget>
#include <QDialog>
class QCheckBox;
class QLabel;
class QPushButton;
class QWidget;
class QStringList;
class QComboBox;
class QVBoxLayout;

class Mail_choose: public QDialog {

Q_OBJECT

public :

    Mail_choose(QWidget *parent = 0);

    signals :
    void increase(int &i);

    private slots:
    void SetChooseButtonProfileEnable();

private://...
//...


Пишу в эклипсе, вот ерор лог :

make: *** [release] Error 2
make[1]: *** [release\_.exe] Error 1
release/moc_mail_choose.o:moc_mail_choose.cpp: undefined reference to`Mail_choose::SetChooseButtonProfileEnable()'

Не пойму, в чем дело?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 4:14