crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Общие вопросы по программированию на qt
Dima2387
  опции профиля:
сообщение 31.1.2013, 17:53
Сообщение #1


Студент
*

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

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




Репутация:   0  


Читаю книгу Бланшета и к сожалению она для меня малопонятная, или выражаясь более лаконично некоторые части примеров считаю недостаточно описанными для понимания с нуля. Конкретно в данный момент интересует такой вопрос:
в книге есть пример создания программы с кнопкой выхода

#include <QApplication>
#include <QPushButton>
int main (int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
button -> show();
return app.exec();
}

Может ли кто-то подробно описать значение строк

QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));

Как их вижу я:
первая строка
QPushButton *button - вызов (класса?) QPushButton
*button - создание элемента кнопка
new QPushButton("Quit"); - название нового элемента типа button c названием - new QPushButton и свойством "Quit" это свойство в данном случае это его лейбл

по второй строке даже наверное не могу дать описания. Если кто подробно распишет, буду очень благодарен спасибо что не лень ответить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 31.1.2013, 18:31
Сообщение #2


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

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

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




Репутация:   3  


Цитата
первая строка
QPushButton *button - вызов (класса?) QPushButton
*button - создание элемента кнопка
new QPushButton("Quit"); - название нового элемента типа button c названием - new QPushButton и свойством "Quit" это свойство в данном случае это его лейбл

Нет.
QPushButton *button
создание переменной указателя на тип QPushButton по имени button.
new QPushButton("Quit");
Выделение памяти и конструирование одного объекта QPushButton. Оператор new возвращает указатель на ново созданную кнопку.
QPushButton *button = new QPushButton("Quit");

Создаем указатель, создаем кнопку, записываем адрес кнопки в указатель.

QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));

Соединение сигнала кнопки clicked (сигнал испускается когда кнопка нажимается), со слотом приложения quit (выход из приложения). Подробнее о сигналах и слотах: http://qt-project.org/doc/qt-4.8/signalsandslots.html.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dima2387
  опции профиля:
сообщение 31.1.2013, 18:45
Сообщение #3


Студент
*

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

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




Репутация:   0  


Спасибо за потраченное время. Еще один вопрос сигналы предопределены их есть какой-то список или сигналы можно каким-то образом создавать самому тоесть есть "clicked" это означает щелчок левой кнопкой мыши, а возможно ли сделать свой сигнал например google и если с клавиатуры прийдет нажатие кнопки F12 то откроется браузер с открытым гуглом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dima2387
  опции профиля:
сообщение 31.1.2013, 19:36
Сообщение #4


Студент
*

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

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




Репутация:   0  


Возможно ли программирование на qt без знаний с++ если да то какую посоветуете книгу? или необходимо учить снача си потом куте. Спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 31.1.2013, 20:06
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

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




Репутация:   12  


Qt - не язык программирования. это всего лишь библиотека, написанная на С++.
программирование на С++ тут подразумевается, как безусловный навык.
есть реализация для питона. возможно, для каких-то ещё языков. но основа Qt - С++.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 31.1.2013, 20:27
Сообщение #6


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

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

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




Репутация:   3  


Цитата
Еще один вопрос сигналы предопределены их есть какой-то список или сигналы можно каким-то образом создавать самому

Можно самому создавать.
Цитата
а возможно ли сделать свой сигнал например google и если с клавиатуры прийзойдет нажатие кнопки F12 то откроется браузер с открытым гуглом

Можно создать сигнал google который будет испускаться если нажать F12. Однако происходящее при этом действие определяется не сигналом а присоединенным к нему слотом (по сути обычной функцией). Можно создать слот который будет открывать браузер. И соединить сигнал со слотом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.2.2013, 1:10
Сообщение #7


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

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

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




Репутация:   94  


Цитата(Dima2387 @ 31.1.2013, 19:53) *
Может ли кто-то подробно описать значение строк
Читай учебное пособие из документации.
Вот из старой версии, но актуальное и на мой взгляд зря было убрано из современной версии.
Пройди его от начала и до конца, потом можешь посмотреть учебное пособие из версии 4.7


Цитата(Dima2387 @ 31.1.2013, 20:45) *
есть "clicked" это означает щелчок левой кнопкой мыши
категорически нет!
Этот сигнал посылает сама кнопка, сообщая что по ней щёлкнули. Какой кнопкой мыши по неё щёлкнули, в общем случае, не определено, т.е. зависит от алгоритма обработки событий самого виджета-кнопки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dima2387
  опции профиля:
сообщение 2.2.2013, 0:57
Сообщение #8


Студент
*

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

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




Репутация:   0  


Iron Bug, ilyabvt, Litkevich Yuriy спасибо вам. Общее понятие дали, буду читать литературу по си++, и уроки которые предоставил Юрий.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 25.4.2024, 11:34