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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] Размещение Layout на QTabWidget  (Прочитано 3797 раз)
HirurG.
Гость
« : Май 13, 2011, 12:05 »

Здравствуйте! Возникла проблема с размещением компонентов на вкладках QTabWidget. Причём на двух вкладках QLabel не вызывают проблем, а QTabWidget на третьей выдаёт ошибку
mainwindow.cpp:49: ошибка: no matching function for call to ‘QTabWidget::addTab(QVBoxLayout*&, const char [19])’
код программы:
mainwindow.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QTabWidget *tab;

    QLabel *lbl1;
    QLabel *lbl2;
    QLabel *lbl3;

    QVBoxLayout *vbxVerticalLayout;

    QTableWidget tblA;
    QTableWidget tblB;
    QLabel *lblN;
    QLineEdit *leN;
    QPushButton *pbFill;
    QPushButton *pbCalc;

public slots:
    void setRange(QString);
    void fillTest();
    void Calculation();

};

#endif // MAINWINDOW_H
mainwindow.cpp
Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    tab = new QTabWidget;

    lbl1 = new QLabel("Equation");
    lbl2 = new QLabel("System of equation");
    lbl3 = new QLabel("Root of m");

    QHBoxLayout *hbxToolLayout = new QHBoxLayout;
    QHBoxLayout *hbxTableLayout = new QHBoxLayout;
    vbxVerticalLayout = new QVBoxLayout;

    lblN = new QLabel("Vvedite razmernost' matrici");
    leN = new QLineEdit;
    pbFill = new QPushButton("TestFill");
    pbCalc = new QPushButton("Calculation");

    tblA.setRowCount(3);
    tblA.setColumnCount(3);
    leN->setText("3");

    tblB.setRowCount(3);
    tblB.setColumnCount(1);

    hbxToolLayout->addWidget(lblN);
    hbxToolLayout->addWidget(leN);
    hbxToolLayout->addWidget(pbFill);
    hbxToolLayout->addWidget(pbCalc);

    hbxTableLayout->addWidget(&tblA);
    hbxTableLayout->addWidget(&tblB);

    vbxVerticalLayout->addLayout(hbxToolLayout);
    vbxVerticalLayout->addLayout(hbxTableLayout);

    tblA.horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);

    tab->addTab(lbl1, "Equation");
    tab->addTab(vbxVerticalLayout, "System of equation");
    tab->addTab(lbl3, "Root of M");
    tab->resize(500, 200);

    setCentralWidget(tab);
    resize(tab->size());
}

MainWindow::~MainWindow()
{
//
}
Помогите пожалуйста В замешательстве
« Последнее редактирование: Май 13, 2011, 12:22 от HirurG. » Записан
Alucard
Гость
« Ответ #1 : Май 13, 2011, 12:11 »

Цитировать
‘QTabWidget::addTab(QVBoxLayout*&, const char [19])’
Цитировать
tab->addTab(vbxVerticalLayout, "System of equation");
Цитировать
int QTabWidget::addTab ( QWidget * page, const QString & label )
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Май 13, 2011, 12:12 »

Цитировать
mainwindow.cpp:49: ошибка: no matching function for call to ‘QTabWidget::addTab(QVBoxLayout*&, const char [19])’
Ну а что, прочитать сообщение об ошибке не судьба?
Ведь компилятор ругается, что у QTabWidget-а нет такого метода.
Позволительно добавлять виджеты, а ты пытаешься добавить лейаут, который таковым не является.
Записан

Qt 5.11/4.8.7 (X11/Win)
HirurG.
Гость
« Ответ #3 : Май 13, 2011, 12:15 »

Цитировать
‘QTabWidget::addTab(QVBoxLayout*&, const char [19])’
Цитировать
tab->addTab(vbxVerticalLayout, "System of equation");
Цитировать
int QTabWidget::addTab ( QWidget * page, const QString & label )
а подробней можно, пожалуйста  Улыбающийся
Записан
HirurG.
Гость
« Ответ #4 : Май 13, 2011, 12:22 »

Цитировать
mainwindow.cpp:49: ошибка: no matching function for call to ‘QTabWidget::addTab(QVBoxLayout*&, const char [19])’
Ну а что, прочитать сообщение об ошибке не судьба?
Ведь компилятор ругается, что у QTabWidget-а нет такого метода.
Позволительно добавлять виджеты, а ты пытаешься добавить лейаут, который таковым не является.
я тебя понял. думал компилятор на какие-то косяки с указателями ругается, а оказывается на вкладку просто сразу слои нельзя добавлять. решил добавлением на таб виджета, на котором уже закреплён слой. всем спасибо  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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