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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTabWidget  (Прочитано 5650 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Сентябрь 02, 2011, 12:28 »

Помогите Непонимающий Хочу сделать так что при новом конекте к серверу добавлялся новый таб, как правильно это сделать Непонимающий Читаю хелп на функцию int QTabWidget::addTab(QWidget* page, const QString &label)  но как-то все мудрено.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 02, 2011, 12:30 »

Там все предельно просто. Покажи что делаешь и что не получается.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #2 : Сентябрь 02, 2011, 14:07 »

У меня сервак многопоточный

void EchoServer::incomingConnection(int socketDescriptor)
{
    EchoThread* thread = new EchoThread(socketDescriptor,this); // создаем отдельный поток
    connect(thread,SIGNAL(finished()),this,SLOT(removeThread()),Qt::DirectConnection);
    m_threads.append(thread);

    connect(thread,SIGNAL(receiveComplete(QString)),this,SIGNAL(signal_showByteArray(QString)));
    connect(thread,SIGNAL(idNewClient(QString)),this,SIGNAL(signal_newClient(QString)));

    emit siganl_addTab(); // посылаю сигнал на добавление таба

    thread->start();
}


serverForm::serverForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::serverForm)
{
    ui->setupUi(this);

    server = new EchoServer();
   
    connect(server,SIGNAL(siganl_addTab()),this,SLOT(slot_addTab()));
    server->start();
}

void serverForm::slot_addTab()
{
    ui->tabWidget->addTab(this,"newTab");
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Сентябрь 02, 2011, 14:10 »

Дык что должно в табе отображаться?
Код
C++ (Qt)
void serverForm::slot_addTab()
{
   QWidget *w = new QWidget (this);
   ui->tabWidget->addTab(w,"newTab");
}
 
Надеюсь, дальше сам разберешься.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #4 : Сентябрь 02, 2011, 14:23 »

Спасибо, все добавляется Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #5 : Сентябрь 06, 2011, 18:02 »


если я хочу добавить лейаут и текстэдит
так можно??? Непонимающий

код:

class miniTab: public QWidget
{
  public:
         QLayout*layout;
         QTextEdit*text;

 public slots:

};

miniTab * mT;
tabWidget->addTab(mT,"new");
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Сентябрь 06, 2011, 18:06 »

а где конструктор класса miniTab? в нем надо выделить память под текстэдит и накинуть лэйаут (последний можно не хранить членом класса). ну и дальше в коде надо тоже выделить память под mT
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #7 : Сентябрь 06, 2011, 18:16 »

Да сорри, не дописал Смеющийся

class miniTab: public QWidget
{
  public:
         QLayout*layout;
         QTextEdit*text;

  public:
          miniTab();
         ~miniTab();
  public slots:

};

miniTab::miniTab()
{
         layout = new QLayout;
         text = new QTextEdit;
}

miniTab * mT = new miniTab;
tabWidget->addTab(mT,"new");
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Сентябрь 06, 2011, 18:56 »

может все-таки вот так?
Код
C++ (Qt)
class miniTab : public QWidget
{
 private:
        QTextEdit *_textEdit;
 
 public:
         miniTab();
         QTextEdit *textEdit() { return _textEdit; }
};
 
miniTab::miniTab()
{
        _textEdit = new QTextEdit(this);
        QHBoxLayout *layout = new QHBoxLayout(this);
        layout->addWidget(_textEdit);
}
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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