crossplatform.ru

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


  Ответ в Работа с QTabWidget
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
wiz29 Дата 12.4.2011, 14:56
  Дизайнер избавляет от "груды" однотипного и рутинного кода, экономя на этом время.
RazrFalcon Дата 12.4.2011, 13:54
  Тогда получается, что работать с дизайнером действительно проще ^_^
wiz29 Дата 12.4.2011, 13:39
 
Цитата(RazrFalcon @ 12.4.2011, 14:31) *
То есть, как я понял, допклассы создавать не нужно. Можно все реализовывать через WallWindow?

Именно так и есть. Тебе доступны все объекты форм в WallWindow. не зависимо от того в каком из табов они расположены.
RazrFalcon Дата 12.4.2011, 13:31
  Да-да. Это просто тестовый проект.

То есть, как я понял, допклассы создавать не нужно. Можно все реализовывать через WallWindow?
wiz29 Дата 12.4.2011, 13:31
  Сделай проще архитектурно, у тебя есть один диалог с табом, причем табы не динамические.
Тут у тебя есть уже готовые объекты которыми будешь управлять из WallWindow.
ListTab и FolderTab у тебя вообще не используется, тк вся форма создается в дизайнере вместе с наполнением. У тебя есть доступ ко всем объектам табов по именам в любой части WallWindow, поэтому не стесняясь можно создавать нужные слоты в WallWindow и наполнять функциональностью.
P.S. не забывай нормально именовать объекты в QtDesigner, самому будет проще разбираться что к чему, тк имена переменных pushButton1, pushButton2 не информативны:)

class WallWindow : public QMainWindow, private Ui::WallWindow
{
    Q_OBJECT

public:
    WallWindow(QWidget *parent = 0);

private slots:

    void on_addFolderButton_clicked();
    void tableFill();
    int setImage();
    void processStart(QString path, QString arg);
    QList<int> createRandomNumberList();

    void startButton_clicked();
    void on_onlynames_checkBox_stateChanged(int );
    void on_timeBox_valueChanged(int );
    void addButton_clicked();
    void on_table_cellDoubleClicked(int row, int column);
    void on_table_cellClicked(int row, int column);
    void clearButton_clicked();
    void on_pos_comboBox_currentIndexChanged(QString name);
    void order_comboBox_currentIndexChanged(QString name);
    void config_save();
    void nextImage();
    void previousImage();
    void iconActivated(QSystemTrayIcon::ActivationReason reason);
};


Остальные классы тебе в данном случае не нужны
RazrFalcon Дата 12.4.2011, 12:59
  Да знаю что не правильно. Тут то табы уже созданы. А если делать как я раньше делал, то нужно было их создавать.
wiz29 Дата 12.4.2011, 8:25
  естественно не работает, потому что не правильно делаешь:) Выложи код если не трудно, посмотрю
RazrFalcon Дата 11.4.2011, 20:16
  И снова эти табы!
Теперь проблема с Ui
.h
Раскрывающийся текст
#ifndef WALLWINDOW_H
#define WALLWINDOW_H

#include <QMainWindow>
#include "ui_wallwindow.h"

class WallWindow : public QMainWindow, private Ui::WallWindow
{
    Q_OBJECT

public:
    WallWindow(QWidget *parent = 0);
};

class ListTab : public QWidget, private Ui::WallWindow
{
    Q_OBJECT

public:
    ListTab(QWidget *parent = 0);

public slots:
};

class folderTab : public QWidget, private Ui::WallWindow
{
    Q_OBJECT

public:
    folderTab(QWidget *parent = 0);

public slots:
};

#endif // WALLWINDOW_H

.cpp
Раскрывающийся текст
#include <QtDebug>

#include "wallwindow.h"

WallWindow::WallWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setupUi(this);
    //QWidget *mainWidget = new QWidget;
    //mainWidget->setLayout(verticalLayout);
    //setCentralWidget(mainWidget);
    qDebug()<<gridLayout_2->rowCount();
    gridLayout_2->setAlignment(spinBox,Qt::AlignRight);
}

ListTab::ListTab(QWidget *parent) : QWidget(parent)
{
    //gridLayout_2->setAlignment(spinBox,Qt::AlignRight);
    //setLayout(gridLayout_2);
    //qDebug()<<gridLayout_2->rowCount();
    //gridLayout_2->itemAtPosition(0,5)->setAlignment(Qt::AlignRight);
}


Все что я делаю в ListTab::ListTab не на что не влияет. Даже qDebug() не обрабатывается!
RazrFalcon Дата 11.4.2011, 15:46
  Ура! Спасибо. Работает как надо.
Я бы сам не додумался до такого. Просто еще не разу с таким количеством классов не сталкивался.
Теперь по аналогии можно доделывать все что я хотел.
wiz29 Дата 11.4.2011, 15:36
 
Цитата(RazrFalcon @ 11.4.2011, 16:23) *
Я так делал. Но таблица в первом табе не заполняется.

На счет совета: я знаю, просто ради интереса хотелось и в этом разобраться. Понять как оно изнутри работает.

так твоя таблица должна быть связана с settingsTab?


если это так, тогда все просто

измени конструктор settingTab на settingTab(ListTab* pListTab, QWidget *parent = 0)
settingTab::settingTab(ListTab* pListTab, QWidget *parent) : QWidget(parent)
{
    m_pListTab = pListTab;
  settings = new QSettings(QSettings::IniFormat, QSettings::UserScope,
                           "wallpapers-changer", "wallchanger");
...............
}

WallWindow::WallWindow()
{
 ........

  listTab = new ListTab;
  settTab = new settingTab(listTab);
 ........
}



Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 2:15