Ответы пользователя по тегу Qt
  • Как в qt таблице, сделать просчет в реальном времени?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Соединить сигнал изменения ячейки со слотом, который будет смотреть, что изменилось и пересчитывать, а вообще, почитайте "Боровский А. - Qt4.7+. Практическое программирование на C++ (2012)" там в начале была реализации программы на подобии excel
    Ответ написан
    Комментировать
  • Qt. Как создать с инициализацией объект класса с членами-объектами на стеке?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А вы не создавайте их на стеке ;)
    Ответ написан
    Комментировать
  • Qt. Как использовать сигналы-слоты?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Сделайте отдельный класс для окна. Т.е. как-то так:
    main.cpp:
    #include "mainwindow.h"
    #include <QtWidgets/QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }

    mainwindow.h:
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    
    #include <QtWidgets/QMainWindow>
    #include <QtWidgets/QPushButton>
    
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    public slots:
        void buttonPressed();
    private:
        void setupUi();
        QPushButton *pushButton;
    };
    
    #endif // MAINWINDOW_H

    mainwindow.cpp:
    #include "mainwindow.h"
    
    #include <QMessageBox>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent)
    {
        setupUi();
    }
    
    MainWindow::~MainWindow()
    {
    
    }
    
    void MainWindow::buttonPressed()
    {
        QMessageBox::warning(this, "Hello", "Hello, World");
    
    }
    
    void MainWindow::setupUi()
    {
        if (objectName().isEmpty())
            setObjectName(QStringLiteral("MainWindow"));
    
        resize(400, 300);
        setCentralWidget(new QWidget(this));
    
        pushButton = new QPushButton(centralWidget());
        pushButton->setObjectName(QStringLiteral("pushButton"));
        pushButton->setGeometry(QRect(90, 90, 92, 27));
    
        connect(pushButton, SIGNAL(clicked(bool)), this, SLOT(buttonPressed()));
    
    }

    *.pro:
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TEMPLATE = app
    TARGET = untitled27
    INCLUDEPATH += .
    
    HEADERS += mainwindow.h
    SOURCES += main.cpp mainwindow.cpp
    Ответ написан
    Комментировать
  • Qt. Зачем по умолчанию создается производный класс?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Попробуйте создать сначала без creator'а и собрать "вручную", т.е. в консоли, используя qmake. Из годных книг могу ещё посоветовать "Боровский А. - Qt4.7+. Практическое программирование на C++ (2012)", информация немного устарела, но тем не менее прочитать стоит.
    Ответ написан
    Комментировать
  • Qt. Как сделать плавающие виджеты внутри табов?

    devalone
    @devalone Автор вопроса
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    В общем, QMainWindow можно запихнуть в таб. В дизайнере сделать этого не получилось, поэтому я создал две формы для каждого таба и в конструкторе главной формы написал:
    tab0 = new Tab0(this);
    tab1 = new Tab1(this);    
     
    ui->tabWidget->addTab(tab0, "tab0");
    ui->tabWidget->addTab(tab1, "tab1");

    где Tab0 и Tab1, классы унаследованные от QMainWindow.
    Ответ написан
    Комментировать