Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
1

Qt ошибки: 1) не находит мой слот 2) не хочет размещать элементы на виджите правильно.

20.03.2011, 21:17. Показов 1866. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
всем доброго времени суток!
Это снова я и у меня опять ничего не работает в этом Qt.
файл Widget.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui>
const int H=150;
const int W=250;
class Widget:public QWidget
{
private:
    QPushButton *cmd1;
    QPushButton *cmd2;
private slots:
    void cmd1slot();
    void cmd2slot();
public:
    Widget(QWidget*pwgt=0);
protected:
  virtual void paintEvent(QPaintEvent *ev);
};
 
#endif // WIDGET_H
файл widget.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <QtGui>
#include <Widget.h>
Widget::Widget(QWidget *pwgt):QWidget(pwgt)
{
    this->setWindowTitle("Options");
    this->resize(W,H);
    cmd1=new QPushButton("CMD1",this);
    cmd1->show();
    cmd2=new QPushButton("CMD2",this);
    cmd2->show();
    this->setWindowFlags(Qt::Window|Qt::WindowMinimizeButtonHint);
    QObject::connect(cmd1,SIGNAL(clicked()),this,SLOT(cmd1slot()));
   QObject::connect(cmd2,SIGNAL(clicked()),this,SLOT(cmd2slot()));
    //layout
    QBoxLayout layout(QBoxLayout::LeftToRight);
    layout.addWidget(cmd1,1);
    layout.addWidget(cmd2,2);
    this->setLayout(&layout);
}
void Widget::paintEvent(QPaintEvent *ev)
{
    this->resize(W,H);
}
void Widget::cmd1slot()
{
    qDebug() <<"cmd1slot";
}
void Widget::cmd2slot()
{
    qDebug()<<"cmd2slot";
}
файл main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include <Widget.h>
int main(int args,char**argv)
{
    QApplication a(args,argv);   
    Widget wgt;
    wgt.show();
 
 
    return a.exec();
}
и вот такие проблемы:
1) не находит мои слоты
Object::connect: No such slot QWidget::cmd1slot() in ..\untitled\Widget.cpp:12
Object::connect: No such slot QWidget::cmd2slot() in ..\untitled\Widget.cpp:13
2) в окне имеется только кнопка CMD2 в правом верхнем углу.

Смысл всего этого кода:
PaintEvent-обрабатываю чтобы пользователь не изменял размеры окна т.к. других способов запретить изменение размеров окна я не вижу.
Чтобы обработать нажатие кнопок не вижу других вариантов кроме как создать слоты в этом же объекте и связать их с сигналами кнопок.

Помогите т.к. я не знаю уже что делать всё у меня какие-то проблемы с Qt.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2011, 21:17
Ответы с готовыми решениями:

Как правильно размещать элементы View на Layout
У меня есть небольшое приложение в виде виджета. На виджете есть ImageView и три TextView. Т.е. на...

"Мой компьютер" не находит элементы для отображения
Когда открываю &quot;Мой компьютер&quot; в центре показывается только анимационный фонарик, в строке статуса...

Не находит слот - в чём может быть причина?
Ребята, помогите, пожалуйста, прочитал кучу тем, никак не могу заставить работать Выдает ошибку...

Почему программа через раз, находит правильно, минимальные элементы из столбцов?(0 как мин эл-нт мне не нужен)
a:=random(10); write(a:3); end; writeln; end; writeln; for i:=1 to 5...

1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
20.03.2011, 21:36 2
Цитата Сообщение от polimorf96 Посмотреть сообщение
PaintEvent-обрабатываю чтобы пользователь не изменял размеры окна т.к. других способов запретить изменение размеров окна я не вижу.
SetFixedSize
Цитата Сообщение от polimorf96 Посмотреть сообщение
private slots:
сделайте либо public
либо
connect(cmd1,SIGNAL(clicked()),SLOT(cmd1slot()));
вместо
QObject::connect
1
20.03.2011, 21:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2011, 21:36
Помогаю со студенческими работами здесь

Как правильно размещать классы
Доброго времени суток. При написании проекта, состоящего из большого количества файлов из-за...

Как правильно размещать чужой материал
Ситуация такая. На сайте довольно много уникальных страниц. Хочу публиковать на сайте новости по...

Как правильно размещать несколько картинок в header
как правильно размещать несколько картинок в header? попробовал создать блок слева и добавить руку...

Где правильно размещать TSQLQuery - на форме или в DataModule?
Добрый день. Подскажите пожалуйста, где необходимо размещать компонент TSQLQuery (на форме или в...

Хакер хочет взломать мой блог
Уже несколько месяцев,мне атакует один негодяй.Если с одного ІР можно было бы решать проблему....

Как правильно размещать таблицу прерываний (в ATmega 328 в частности)?
.cseg ; Выбор сегмента программного кода .org 0 ; Установка текущего адреса на ноль jmp ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru