Russian Qt Forum
Ноябрь 24, 2024, 17:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите создать пользовательский виджет...  (Прочитано 6590 раз)
zoro86
Гость
« : Октябрь 05, 2009, 14:01 »

мне необходимо создать обект который будет унаследован от QWidget и содержать в себе QGroupBox с QTableWidget, в QTableWidget будут отображаться данные из бызы, я например могу сделать все это в диалоговом окне.... но мне нужно именно создать его как обект с сигналами и слотами... а потом просто подсоединять ххх.h файл и использовать во все дыры...

я думаю сделать это так...

есть operation.h


Код
C++ (Qt)
#ifndef OPERATION_H
#define OPERATION_H
 
#include <QtGui>
 
class QGroupBox;
class QSqlQuery;
class QTableWidget;
class QTableWidgetItem;
 
class operationWidget : public QWidget
{
  // Q_OBJECT
 
public:
operationWidget(QWidget *parent = 0);
 
public:
bool createConnection();
bool addOperationData();
 
private:
QSqlQuery *query;
QTableWidget *tableWidget;
QTableWidgetItem *tableWidgetItem;
 //   QGroupBox *groupOperation;
 
};
 
#endif
 
есть operation.cpp
 
#include <QtGui>
#include <QtSql>
 
#include "operation.h"
 
operationWidget::operationWidget(QWidget *parent):QWidget(parent)
{
 
 
}

можно ли так начать... конструктор?
« Последнее редактирование: Октябрь 05, 2009, 14:52 от pastor » Записан
BaltikS
Гость
« Ответ #1 : Октябрь 05, 2009, 14:18 »

По-моему глупый вопрос, но также глупо отвечаю, можно...
Но лучше почитать книгу Бланшета, глава Создание пользовательского виджета....(ну или что то в этом духе)....
Ну коли вопрос о создание нового....то лучше  сделать это в дизайнере....
Записан
zoro86
Гость
« Ответ #2 : Октябрь 05, 2009, 14:30 »

да я недавно начал писать на QT даже пол месяца нет... я думаю по началу такой вопрос не очень и глуп.. Подмигивающий
А за указание правильного пути большое спасибо ..
Записан
Danila_Bagrofff
Гость
« Ответ #3 : Октябрь 05, 2009, 14:37 »

Также ты можешь посомтреть примеры. Есть отдельная папка примеров в Qt - Examples.

Там ты можешь увидеть, как и что реализовано.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #4 : Октябрь 05, 2009, 19:10 »

да я недавно начал писать на QT даже пол месяца нет...
прочесть книгу Бланшета можно было за 1 день.... и не тратить 15 дней экспериментируя.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Aleksey_Zh
Гость
« Ответ #5 : Октябрь 07, 2009, 14:07 »

Можно еще почитать Макса Шлее.  Там тоже все хорошо написано.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Октябрь 07, 2009, 15:18 »

Как сказал Danila_Bagrofff, в примерах есть целый каталог пользовательских виджетов:
%QTDIR%\examples\widgets
Записан

Юра.
ranet
Гость
« Ответ #7 : Октябрь 10, 2009, 13:46 »

но мне нужно именно создать его как обект с сигналами и слотами... а потом просто подсоединять ххх.h файл и использовать во все дыры...

Идея с одной стороны правильная, и тебе конечно стоит разобраться, как это делается.. Я тоже сначала стремился именно к этому, потому хочу соображениями поделиться:
1) Если ты потеряешь код этого своего виджета, то потом будет трудно.. Например ты даже добьешься, что его можно через графический интерфейс QT дизайнера или креэйтора настраивать.. А потом тебя заберут в армию:), и когда ты вернешься - обнаружишь что на твоем компе QT вместе с любимым Linux'ом куда-то делась.. Младший братишка поставил винду, и кучу игрушек Смеющийся, куда делся код супервиджета - фиг знает.. А тебе срочно что-то изменить нужно в работающем уже проекте (его исходники сохранились у заказчиков, но там только #include xxx.h). Понятно, что резервное копирование и все такое.. Но перед армией тебе будет не до этого, поверь мне:))) Похожая ситуация очень даже возможна, даже и без армии.. Лучше использовать стандартные виджеты, и наделять их нестандартными возможностями по мере надобности.. Такой проект всегда будет легко открываться и редактироваться, а не только на твоём компутере с твоей QT.

2)Что-то совсем универсальное, применимое во всех без исключения случаях - красивая мечта, но она неосуществима.. Все равно что-то каждый раз придется менять в САМОМ xxx.h, сделать так, чтобы его можно было совсем не трогать - очень непростая задача.. и времени на это уйдет немало.. Стоит ли.. я для себя не решил, хотя сама идея очень соблазнительная.. Пока решил, что думать над ней буду, но писать программы лучше без него.. Как я понимаю, сделать такой виджет можно только если опыта уже набрался, у меня пока маловато..

Бланшета читай осторожно, там есть косяки Смеющийся Я уже попадался:) Синтаксис  лучше смотреть во встроенной справке QT Смеющийся
« Последнее редактирование: Октябрь 10, 2009, 13:55 от ranet » Записан
CroCIV
Гость
« Ответ #8 : Октябрь 12, 2009, 08:44 »

душераздирающая история  Улыбающийся я бы брата за такое в чудовищных муках умершвлял  Смеющийся
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #9 : Октябрь 16, 2009, 02:10 »

Вы пытаетесь реализовать компонент "справочник" - некоторая форма с табличкой отображающая данные из БД - и на этом сайте и на QtApps уже были примеры решений - можете ознакомиться с ними.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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