Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 16:45   #11
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2_KUL
зачем ты несколько раз exec() вызывал то?
тебе нужто что то типа
Код:
int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	Dialog dlg;
	dlg.show();

	if (dlg.exec() == QDialog::Accepted) {
		QWidget *wnd;
		switch (dlg.wndNumber()) {
		case 1:
			wnd = new FirstWindow;
			break;
		case 2:
			wnd = new SecondWindow;
			break;
		case 3:
			wnd = new ThirdWindow;
			break;
		default:
			wnd = new ErrorWindow;
			break;
		}
		wnd->show();
		return a.exec();
	}

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.05.2012, 16:45   #12
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

Истина оказалась в моем последнем вопросе в посте 9! Ведь нужно ветвление условия продолжить, да и всё!

PHP код:
#include <QApplication>
#include "dialog.h"
#include "generalpanel.h"
#include "ui_generalpanel.h"

int main(int argcchar *argv[])
{
    
QApplication a(argcargv);

    
Dialog w;
    
w.show();

    if (
w.exec() == QDialog::Accepted){
        if (
w.== 1) {
            
generalpanel gp;
            
gp.show();
            
gp.ui->label->setText("form 2");
            return 
a.exec();
        }
        if (
w.== 2) {
            
generalpanel gp2;
            
gp2.show();
            
gp2.ui->label->setText("form 3");
            return 
a.exec();
        }
    }

    return 
0;


Круто!
pproger, спасибо за if (dlg.exec() == QDialog::Accepted) {

И ещё вопрос. А такой метод корректный для общения между формами виджетов? Есть ещё какие-то варианты в природе?! Можете показать пример?
_KUL вне форума Ответить с цитированием
Старый 23.05.2012, 16:57   #13
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

а не вызывая exec() + accepted первого окна, можно открыть второе?
Т.е. получается мой первый вопрос с дополнением - в классе первого окна сделать событие по которому открывается другое окно, другого класса, при этом первое окно не закрывается?
_KUL вне форума Ответить с цитированием
Старый 23.05.2012, 17:04   #14
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2_KUL
Цитата:
а не вызывая exec() + accepted первого окна, можно открыть второе?
ты разберись, с чем ты работаешь, с диалогами или окнами. диалоги тоже разные бывают, модальные и немодальные

Цитата:
в классе первого окна сделать событие по которому открывается другое окно, другого класса, при этом первое окно не закрывается
ну внутри этого класса и создавай это событие
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.05.2012, 17:53   #15
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

хм, спасибо за пояснения простых истин!
_KUL вне форума Ответить с цитированием
Старый 05.07.2013, 13:24   #16
ANTon_7
 
Регистрация: 22.02.2013
Сообщений: 4
По умолчанию Взаимодействие между формами через таблицу

Подскажите как открывать форму диалога, при выделении (постановки курсора) ячейки таблицы QTableWidget на главной форме, пытался через сигнал cellActivated(int,int)

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

Может необходимо использовать другой сигнал? где прописывать связь слота и сигнала? как добиться имитации сигнала при выделении (постановки курсора) ячейки? Не пинайте за банальные вопросы
Вложения
Тип файла: rar Dialog_1.rar (420.4 Кб, 6 просмотров)
Тип файла: doc Решение.doc (32.0 Кб, 7 просмотров)

Последний раз редактировалось ANTon_7; 05.07.2013 в 13:27.
ANTon_7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как наладить взаимодействие между формами программы mixmon Visual C++ 6 26.06.2015 12:11
Взаимодействие между формами и БД Lazio Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 28.01.2012 10:39
Взаимодействие между формами в dll RUSlan48 Общие вопросы Delphi 2 01.03.2011 22:40
организовать взаимодействие между формами, как? lexluter1988 Общие вопросы .NET 1 21.05.2010 06:49
Взаимодействие между формами Marsel737 Общие вопросы Delphi 5 16.11.2009 22:29