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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 16 17 [18] 19
256  Qt / Вопросы новичков / Re: Закрыть виджет : Март 04, 2013, 19:24
И вам спасибо! Теперь надо выбрать из всех оптимальных вариантов самый оптимальный. Подмигивающий
Странно, что для такой в общем-то несложной штуки, требуется привлечение не самых очевидных способов.
Но я - не в обиде. Вот еще я узнал пару кустов и лиан в джунглях Qt Улыбающийся
257  Qt / Вопросы новичков / Re: Закрыть виджет : Март 04, 2013, 14:26
Спасибо! Похоже, это оптимальный вариант.
258  Qt / Вопросы новичков / Re: Закрыть виджет : Март 04, 2013, 14:14
Ну тогда надо унаследоваться от QWidget и переопределить событие "closeEvent()". Естественно, что новоявленный класс должен будет иметь указатель на tx;
Понятно. Дело немного усложняется тем, что может быть несколько экземпляров tx. Значит надо будет создавать не просто указатель на tx, а список указателей типа QList, следить за закрытиями этих экземпляров....
Если более простого решения не найдется, придется наследовать mw от диалога, что в общем-то логично...
259  Qt / Вопросы новичков / Re: Закрыть виджет : Март 04, 2013, 13:50
Код
C++ (Qt)
QTextEdit *tx = new QTextEdit(mw);
Но тогда tx будет внутри mw, а мне этого совершенно не хочется. Дело в том, что mw - небольшой "управляющий" виджет, что-то вроде стартера. А tx хочется сделать побольше, там результаты просматриваются.
Похожая штука была у меня в случае, когда mw происходил от QDialog. тогда лечит [cpp]
   QObject::connect (mw, SIGNAL(finished(int)), tx, SLOT(close()));[/cpp]
260  Qt / Вопросы новичков / Закрыть виджет : Март 04, 2013, 13:39
Хочу, чтобы при закрытии виджета mw закрывался и виджет tx
[cpp]  QWidget *mw = new QWidget();
  .....
  QTextEdit *tx = new QTextEdit();
  QObject::connect (mw, SIGNAL(destroyed(QObject *)), tx, SLOT(close()));
  QObject::connect (mw, SIGNAL(destroyed(QObject *)), tx, SLOT(deleteLater())); [/cpp]
Но почему-то этого не происходит...
261  Qt / Вопросы новичков / Re: Дочерние виджеты вылезают за родительский : Ноябрь 25, 2012, 19:07
В том то и дело, что хотелось бы обойтись без MDI. Мне не все нравиться в том, что MDI делает с окнами. Например, если я расширяю на всю область одно окно, то и все остальные расширяются. Т.е. хотелось бы что-то вроде MDI, но немножко по другому.
262  Qt / Вопросы новичков / Re: Дочерние виджеты вылезают за родительский : Ноябрь 25, 2012, 18:04
PS. Если главный виджет надо порождать от QWidget, я не против. Только и так ничего не получилось.
263  Qt / Вопросы новичков / Дочерние виджеты вылезают за родительский : Ноябрь 25, 2012, 17:59
Есть главный виджет порожденный QMainWindow
Дочерние виджеты должны иметь рамку и заголовок.
Но как я их не создавал, какие флаги не ставил, от кого ни порождал, они все равно свободно гуляют по экрану.
Если их делать Qt::SubWindow, нет рамки и заголовка и никакими setWindowFlags их сделать не удается.
Не подскажете ли выход. Мне почему-то кажется, что он весьма прост, но я совершенно запутался.
264  Qt / Пользовательский интерфейс (GUI) / Re: QListWidget: как сделать автоматический подбор ширины по самой длинной строке? : Октябрь 14, 2012, 18:04
Получилось так. Породил класс от QListWidget. При заполнении посчитал максимальную ширину и сумму высот. И переопределил sizeHint.
На всякий случай определил setSizePolicy(Fixed, Fixed)
265  Qt / Пользовательский интерфейс (GUI) / Re: QListWidget: как сделать автоматический подбор ширины по самой длинной строке? : Октябрь 12, 2012, 13:17
QListView::Adjust ?
Меня тоже заинтересовал этот вопрос. Правда, с точностью до наоборот, у меня слишком много пространства справа. Нельзя ли чуть-чуть поподробнее?
266  Qt / Общие вопросы / Re: [РЕШЕНО]QFont. Использование шрифта из файла : Март 11, 2012, 15:00
QFontDatabase::addApplicationFont ?
Простите, а нельзя ли поподробнее? Меня эта проблема давно уже мучает.
Эффект будет такой же, как от AddFontResourse? Этот добавляет строчку в таблицу шрифтов, те регистрирует его в системе, вызывать свой фонт я все равно должен по имени, при этом возможен конфликт имен. А не могу ли сказать, что хочу писать фонтом из конкретного файла?
267  Qt / Вопросы новичков / Re: undefined reference to `vtable for MClas' : Январь 15, 2012, 13:06
Код
C++ (Qt)
QPushButton B1("1", &Mc->wgt);
QPushButton B2("2", &Mc->wgt);
QPushButton B3("2", &Mc->wgt);
Не стоит давать стековым объектам Qt-шного родителя, может привести к печальным последствиям
Виноват, исправился.
А по сути ошибки, послушай камбалу - вынеси реализацию класса в отдельный файл. То есть у тебя должно быть три файла: main.cpp, MClas.h, MClas.cpp
Послушался, но по-началу толку не было. Посмотрел кой какие статьи, стал крутить все ручки (уже истерика) - и получилось!
В числе прочего поставил перед конструктором класса explicit. Может быть не это помогло, а всякие INCLUDEPATH +=, HEDERS +=, но во всяком случае не помешало
268  Qt / Вопросы новичков / Re: undefined reference to `vtable for MClas' : Январь 14, 2012, 15:07
Запусти qmake.
Тоже самое
269  Qt / Вопросы новичков / Re: qDebug : Январь 14, 2012, 14:58
"А если мы выйдем из Qt и запустим получившийся экзешник?"
Ересь, в Qt нельзя зайти или выйти.
Qt - библиотека классов.
Простите великодушно. Я имел в виду Qt Creator
270  Qt / Вопросы новичков / undefined reference to `vtable for MClas' : Январь 14, 2012, 14:53
Вот решил попробовать себя в самостоятельном творчестве
И получил такую ошибку
Код:
release/main.o:main.cpp:(.text+0xcb): undefined reference to `vtable for MClas'
collect2: ld returned 1 exit status
Уж и проект чистил (и из среды "Очистить проект" и просто ручками, удалив все, кроме pro, cpp, h
Сдаюсь и прошу помощи

main.h
Код:
#ifndef _Main_h_
#define _Main_h_

#include <QObject>

class MClas : public QObject {
    Q_OBJECT
public:
    MClas() : QObject() { }
    QWidget      wgt;
public slots:
    void ShowKvadr();
    void MClock();
    void Pict();
};
#endif

main.cpp
Код:
#include <QtGui>
#include "main.h"
//-------
  MClas *Mc;
// --------------------------------
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    Mc = new MClas();
    QPushButton B1("1", &Mc->wgt);
    QPushButton B2("2", &Mc->wgt);
    QPushButton B3("2", &Mc->wgt);
    QObject::connect(&B1, SIGNAL(clicked()),
                     Mc, SLOT(ShowKvadr()));
    QObject::connect(&B2, SIGNAL(clicked()),
                     Mc, SLOT(MClock()));
    QObject::connect(&B3, SIGNAL(clicked()),
                     Mc, SLOT(Pict()));
    Mc->wgt.resize(800, 600);
    Mc->wgt.show();
    return app.exec();
}
/**************/
void MClas::ShowKvadr()
{
}
/******************/
void MClas::MClock()
{
}
/******************/
void MClas::Pict()
{
}
/[code]
[/code]
Страниц: 1 ... 16 17 [18] 19

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