QT基础部件学习笔记

2023-10-30

目录

一、QT程序开发流程

二、QT基础部件分类  

1. 按钮类(普通、工具、单选、复选、命令连接)

​编辑

​编辑

 2. 布局类(水平、垂直、网格、两列)(该类的实例具体与其他类同时使用)

​编辑

3. 输出类(标签、文本浏览器、日历、七段数码管、进度条)

 4. 输入类(下拉框、字体下拉框、行编辑框、文本编辑框、自旋框、时间编辑框、旋钮、滚动条、滑动杆儿)

​编辑

 5. 容器(分组框、widget、滚动窗口、工具箱、制表容器、栈式窗口) 


一、QT程序开发流程

        1. 申明必要的部件(头文件)
        2. 将部件构造出来(构造函数)
        3. 必要的布局(构造函数)
        4. 前后台关联(构造函数)
        5. 美化

二、QT基础部件分类  

1. 按钮类(普通、工具、单选、复选、命令连接)

案列:

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QToolButton>
#include <QRadioButton>
#include <QCheckBox>
#include <QCommandLinkButton>
#include <QDebug>
#include <QLineEdit>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
 
 
class Widget : public QWidget
{
    Q_OBJECT
public slots:
    void xxx(bool);
    void showpass(bool);
 
 
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
 
 
private:
    QPushButton *bt_button;
    QToolButton *bt_tool;
    QRadioButton *bt_radio;
    QRadioButton *bt_radio1;
    QCheckBox *bt_check;
    QCheckBox *bt_check1;
    QCommandLinkButton *bt_command;
    QLineEdit *le;
    QCheckBox *ck;
    Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QVBoxLayout>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    bt_button=new QPushButton("普通按钮");
    bt_tool=new QToolButton;
    bt_tool->setText("工具按钮");
    bt_radio=new QRadioButton("单选按钮");
    bt_radio1=new QRadioButton("单选按钮");
    bt_check=new QCheckBox("复选按钮");
    bt_check1=new QCheckBox("复选按钮");
    bt_command=new QCommandLinkButton("命令连接按钮");
    bt_command->setDescription("用来测试的");
    le=new QLineEdit;
    ck=new QCheckBox("显示密码");
    QVBoxLayout *vbox=new QVBoxLayout;
    vbox->addWidget(bt_button);
    vbox->addWidget(bt_tool);
    vbox->addWidget(bt_radio);
    vbox->addWidget(bt_radio1);
    vbox->addWidget(bt_check);
    vbox->addWidget(bt_check1);
    vbox->addWidget(bt_command);
    vbox->addWidget(le);
    vbox->addWidget(ck);
    setLayout(vbox);
    connect(bt_button,SIGNAL(clicked(bool)),this,SLOT(xxx(bool)));
    connect(ck,SIGNAL(toggled(bool)),this,SLOT(showpass(bool)));
    ui->setupUi(this);
}
 
 
Widget::~Widget()
{
    delete ui;
}
void Widget::xxx(bool x)
{
    qDebug()<<x;
}
void Widget::showpass(bool x)
{
    if(x)
        le->setEchoMode(QLineEdit::Normal);
    else
        le->setEchoMode(QLineEdit::Password);
}

 2. 布局类(水平、垂直、网格、两列)(该类的实例具体与其他类同时使用)

3. 输出类(标签、文本浏览器、日历、七段数码管、进度条)

实例:

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QLabel>
#include <QTextBrowser>
#include <QCalendarWidget>
#include <QLCDNumber>
#include <QProgressBar>
class Widget : public QWidget
{
    Q_OBJECT
public slots:
    void showdate(QDate);
    void update_value();
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
private:
    QLabel *lb_text;//文本标签
    QLabel *lb_pix;//图片标签
    QLabel *lb_gif;//动画标签
    QTextBrowser *tbrowser;
    QCalendarWidget *caw;
    QLCDNumber *lcd;
    QProgressBar *pbr;
};
#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>
#include <QMovie>
#include <QTimer>
#include <QTextToSpeech>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QTextToSpeech *a=new QTextToSpeech;
    a->say("123");
 
 
    lb_text=new QLabel("标签测试");
 
 
    lb_text->setAlignment(Qt::AlignCenter);
 
 
    lb_pix=new QLabel("我是图片");
    lb_pix->setMinimumSize(10,10);
    lb_pix->setScaledContents(true);
    lb_pix->setPixmap(QPixmap("D:\\Qt\\hqyj\\1.bmp"));
 
 
    lb_gif=new QLabel("我是动画");
    QMovie *m=new QMovie("D:\\Qt\\hqyj\\1.gif");
    lb_gif->setMovie(m);
    m->start();
 
 
    tbrowser=new QTextBrowser;//文本浏览器
    tbrowser->setText("html");
 
 
 
 
 
 
    caw=new QCalendarWidget;//日历
 
 
    lcd=new QLCDNumber;//显示数码管
    lcd->setMinimumHeight(100);
    lcd->display(250);
 
 
    pbr=new QProgressBar;//进度条
 
 
    QVBoxLayout *vbox=new QVBoxLayout;
    vbox->addWidget(lb_text);
    vbox->addWidget(lb_pix);
    vbox->addWidget(lb_gif);
    vbox->addWidget(tbrowser);
    vbox->addWidget(caw);
    vbox->addWidget(lcd);
    vbox->addWidget(pbr);
    setLayout(vbox);
    connect(caw,SIGNAL(clicked(QDate)),this,SLOT(showdate(QDate)));
    QTimer *t=new QTimer;
    connect(t,SIGNAL(timeout()),this,SLOT(update_value()));
    t->start(100);
}
 
 
Widget::~Widget()
{
}
void Widget::showdate(QDate d)
{
    lb_text->setText(d.toString());
}
void Widget::update_value()
{
    static int data=0;
    lcd->display(data);
    pbr->setValue(data);
    data++;
    if(data==100)
        data=0;
}


 4. 输入类(下拉框、字体下拉框、行编辑框、文本编辑框、自旋框、时间编辑框、旋钮、滚动条、滑动杆儿)

实例:

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QComboBox>
#include <QDebug>
#include <QLabel>
#include <QFontComboBox>
#include <QTextEdit>
#include <QLineEdit>
#include <QSpinBox>
#include <QLCDNumber>
#include <QTimeEdit>
#include <QTime>
#include <QDial>
#include <QScrollBar>
#include <QSlider>
 
 
class Widget : public QWidget
{
    Q_OBJECT
public slots:
    void show_int(int );
    void show_str(QString);
    void show_pic(QString);
    void show_time(QTime);
    void te_to_lb();
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
private:
    QComboBox *cmb;
    QFontComboBox *fcmb;
    QTextEdit *te;
    QLineEdit *le;
    QSpinBox *sb;
    QTimeEdit *timee;
    QDial *dl;
    QScrollBar *slb;
    QSlider *sd;
 
 
    //调试用
    QLabel *lb;
    QLCDNumber *lcd;
};
 
 
#endif // WIDGET_H

 

#include "widget.h"
#include <QVBoxLayout>
#include <QFont>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    lb = new QLabel("你好");
 
 
    lcd = new QLCDNumber;
    lcd->setMinimumHeight(50);
    lcd->setDigitCount(10); //设置显示数据位数
 
 
    /*组合框、下拉框*/
    cmb = new QComboBox;  //构造组合框
    cmb->addItem("C:\\Users\\ThinkPad T490\\Desktop\\220501\\1.bmp");
    cmb->addItem("C:\\Users\\ThinkPad T490\\Desktop\\220501\\pc.bmp");
    cmb->addItem("C:\\Users\\ThinkPad T490\\Desktop\\220501\\x.jpg");
 
 
    connect(cmb, SIGNAL(activated(int)), this, SLOT(show_int(int)));
    connect(cmb, SIGNAL(activated(QString)), this, SLOT(show_str(QString)));
    connect(cmb, SIGNAL(activated(QString)), lb, SLOT(setText(QString)));
    //connect(cmb, &QComboBox::activated, [&](int i) { lb->setPixmap(QPixmap(cmb->itemText(i)));});
    connect(cmb, SIGNAL(activated(QString)), this, SLOT(show_pic(QString)));
 
 
    /*字体下拉框*/
    fcmb = new QFontComboBox;
    connect(fcmb, &QFontComboBox::currentFontChanged, [&](QFont f){ lb->setFont(f);});
 
 
    /*行编辑框*/
    le = new QLineEdit;
    le->setPlaceholderText("用户名");
 
 
    /*文本编辑框*/
    te = new QTextEdit;
    connect(te, SIGNAL(textChanged()), this, SLOT(te_to_lb()));
 
 
    /*自旋框*/
    sb = new QSpinBox;
    sb->setMaximum(20); //最大只能为20
    sb->setSingleStep(10); //设置单步跨度
    connect(sb, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
 
 
    /*时间编辑框*/
    timee = new QTimeEdit;
    connect(timee, SIGNAL(timeChanged(QTime)), this, SLOT(show_time(QTime)));
 
 
    /*旋钮*/
    dl = new QDial;
    dl->setRange(0, 1000); //设置调节范围
    connect(dl, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
 
 
    /*滚动条*/
    slb = new QScrollBar;
    slb->setRange(0, 1000); //设置调节范围
    slb->setOrientation(Qt::Horizontal); //显示方案“水平”
    connect(slb, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
 
 
    /*滑动杆儿*/
    sd = new QSlider;
    sd->setRange(0, 1000); //设置调节范围
    sd->setOrientation(Qt::Horizontal); //显示方案“水平”
    connect(sd, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(lb);
    vbox->addWidget(lcd);
    vbox->addWidget(le);
    vbox->addWidget(cmb);
    vbox->addWidget(fcmb);
    vbox->addWidget(te);
    vbox->addWidget(sb);
    vbox->addWidget(timee);
    vbox->addWidget(dl);
    vbox->addWidget(slb);
    vbox->addWidget(sd);
 
 
    setLayout(vbox);
}
 
 
void Widget::show_time(QTime t)
{
    lcd->display(t.toString());
}
 
 
void Widget::te_to_lb()
{
    lb->setText(te->toPlainText());
}
 
 
void Widget::show_pic(QString path)
{
    lb->setPixmap(QPixmap(path));
}
 
 
void Widget::show_int(int data)
{
    qDebug() << data;
}
 
 
void Widget::show_str(QString str)
{
    qDebug() << str;
}
 
 
Widget::~Widget()
{
 
 
}


 5. 容器(分组框、widget、滚动窗口、工具箱、制表容器、栈式窗口) 

 

 实例(Group Box):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QGroupBox>
#include <QLabel>
#include <QRadioButton>
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QLabel *lb[2];
    QRadioButton *rb[6];
 
 
    QGroupBox *g1;
    QGroupBox *g2;
};
 
 
#endif // WIDGET_H
 

 

#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    lb[0] = new QLabel("题目1 safasfasfasdf");
    rb[0] = new QRadioButton("aaaaa");
    rb[1] = new QRadioButton("bbbbb");
    rb[2] = new QRadioButton("ccccc");
 
 
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb[0]);
    vbox1->addWidget(rb[0]);
    vbox1->addWidget(rb[1]);
    vbox1->addWidget(rb[2]);
 
 
    g1 = new QGroupBox("AAAA");   //带边框显示和注释的容器
    g1->setLayout(vbox1);
///
    lb[1] = new QLabel("题目2 dhjdfdjdjfdjdfdjjjjfd");
    rb[3] = new QRadioButton("xxxxx");
    rb[4] = new QRadioButton("yyyyy");
    rb[5] = new QRadioButton("zzzzz");
 
 
    QVBoxLayout *vbox2 = new QVBoxLayout;
    vbox2->addWidget(lb[1]);
    vbox2->addWidget(rb[3]);
    vbox2->addWidget(rb[4]);
    vbox2->addWidget(rb[5]);
 
 
    g2 = new QGroupBox("BBBB");     //带边框显示和注释的容器
    g2->setLayout(vbox2);
 
 
    QVBoxLayout *vbox3 = new QVBoxLayout;
    vbox3->addWidget(g1);
    vbox3->addWidget(g2);
    setLayout(vbox3);
 
 
}
 
 
Widget::~Widget()
{
 
 
}

 实例(scrollarea):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QLabel>
#include <QScrollArea>
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
    QLabel *lb;
    QScrollArea *ar;
};
 
 
#endif // WIDGET_H
 

 

#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    lb = new QLabel;
    lb->setPixmap(QPixmap("C:\\Users\\ThinkPad T490\\Desktop\\220501\\1.jpeg"));
    //lb->setParent(this);
 
 
    ar = new QScrollArea; //滚动窗口容器
    ar->setWidget(lb);    //把标签放入容器
    //ar->setParent(this);
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(ar);
    setLayout(vbox);
}
 
 
Widget::~Widget()
{
 
 
}

实例(stackwidget):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QTextEdit>
#include <QStackedWidget>
#include <QComboBox>
 
 
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
    QTextEdit *t1, *t2;
    QStackedWidget *box;
    QComboBox *cb;
};
 
 
#endif // WIDGET_H

 

#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
 
 
    box = new QStackedWidget;    //构造一个栈容器
    box->addWidget(t1);  //插入一个新标签
    box->addWidget(t2); //插入一个新标签
 
 
    //测试
    cb = new QComboBox;
    cb->addItem("文本1");
    cb->addItem("文本2");
 
 
    connect(cb, SIGNAL(activated(int)), box, SLOT(setCurrentIndex(int)));
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(cb);
    vbox->addWidget(box);
    setLayout(vbox);
 
 
}
 
 
Widget::~Widget()
{
 
 
}

实例(tabwidget):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QTextEdit>
#include <QTabWidget>
 
 
class Widget : public QWidget
{
    Q_OBJECT
public slots:
    void close_tab(int i)
    {
        box->removeTab(i);
    }
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
    QTextEdit *t1, *t2;
    QTabWidget *box;
};
 
 
#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
 
 
    box = new QTabWidget;    //构造一个制表容器
    box->setTabsClosable(true);//显示关闭的按钮
    box->addTab(t1, "aaaa"); //插入一个新标签
    box->addTab(t2, "bbbb"); //插入一个新标签
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(box);
    setLayout(vbox);
 
 
    connect(box, SIGNAL(tabCloseRequested(int)), this, SLOT(close_tab(int)));
}
 
 
Widget::~Widget()
{
 
 
}

实例(toolbox):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QTextEdit>
#include <QToolBox>
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
    QTextEdit *t1, *t2;
    QToolBox *box;
};
 
 
#endif // WIDGET_H
 
#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
 
 
//    QVBoxLayout *vbox = new QVBoxLayout;
//    vbox->addWidget(t1);
//    vbox->addWidget(t2);
//    setLayout(vbox);
    box = new QToolBox;   //构造一个工具箱容器
    box->addItem(t1, "aaaaa"); //将文本编辑框装入工具箱
    box->addItem(t2, "bbbbb"); //将文本编辑框装入工具箱
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(box);
    setLayout(vbox);
}
 
 
Widget::~Widget()
{
 
 
}
 

实例(widget):

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include <QGroupBox>
#include <QLabel>
#include <QRadioButton>
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QLabel *lb[2];
    QRadioButton *rb[6];
 
 
    QWidget *g1;
    QWidget *g2;
};
 
 
#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    lb[0] = new QLabel("题目1 safasfasfasdf");
    rb[0] = new QRadioButton("aaaaa");
    rb[1] = new QRadioButton("bbbbb");
    rb[2] = new QRadioButton("ccccc");
 
 
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb[0]);
    vbox1->addWidget(rb[0]);
    vbox1->addWidget(rb[1]);
    vbox1->addWidget(rb[2]);
 
 
    g1 = new QWidget;   //无边框显示的容器
    g1->setLayout(vbox1);
///
    lb[1] = new QLabel("题目2 dhjdfdjdjfdjdfdjjjjfd");
    rb[3] = new QRadioButton("xxxxx");
    rb[4] = new QRadioButton("yyyyy");
    rb[5] = new QRadioButton("zzzzz");
 
 
    QVBoxLayout *vbox2 = new QVBoxLayout;
    vbox2->addWidget(lb[1]);
    vbox2->addWidget(rb[3]);
    vbox2->addWidget(rb[4]);
    vbox2->addWidget(rb[5]);
 
 
    g2 = new QWidget;   //无边框显示的容器
    g2->setLayout(vbox2);
 
 
    QVBoxLayout *vbox3 = new QVBoxLayout;
    vbox3->addWidget(g1);
    vbox3->addWidget(g2);
    setLayout(vbox3);
 
 
}
 
 
Widget::~Widget()
{
 

面对对象实例:

questionwidget.h

#ifndef QUSTIONWIDGET_H
#define QUSTIONWIDGET_H
 
 
#include <QWidget>
#include <QLabel>
#include <QRadioButton>
#include <QVBoxLayout>
 
 
class qustionWidget : public QWidget
{
    Q_OBJECT
public:
    qustionWidget(QWidget *parent = nullptr);
 
 
public:
    void setquestion(QString str);  //设置题目
    void addAnswer(QString str);    //添加选项
 
 
private:
    QLabel *lb;   //显示题目
    //QVector<QRadioButton *> bt;
    QVBoxLayout *vbox; //显示选项的
};
 
 
#endif // QUSTIONWIDGET_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H
 
 
#include <QWidget>
#include "qustionwidget.h"
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
 
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
 
    qustionWidget *q1;
    qustionWidget *q2;
    qustionWidget *q3;
};
 
 
#endif // WIDGET_H
 

qustionwidget.cpp

#include "qustionwidget.h"
 
 
qustionWidget::qustionWidget(QWidget *parent) :
    QWidget(parent)
{
    lb = new QLabel;
    //bt.clear();
    vbox = new QVBoxLayout;
    vbox->addWidget(lb);
    setLayout(vbox);
}
 
 
void qustionWidget::setquestion(QString str)
{
    lb->setText(str);
}
 
 
void qustionWidget::addAnswer(QString str)
{
    QRadioButton *an = new QRadioButton(str);
    vbox->addWidget(an);
}
widget.cpp
#include "widget.h"
#include <QVBoxLayout>
 
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    q1 = new qustionWidget;   //题目“控件”
    q1->setquestion("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
    q1->addAnswer("aaaaaaa");
    q1->addAnswer("bbbbbbb");
    q1->addAnswer("ccccccc");
    q1->addAnswer("dddddddddd");
 
 
    q2 = new qustionWidget; //题目“控件”
    q2->setquestion("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
    q2->addAnswer("xxxxx");
    q2->addAnswer("yyyyyy");
    q2->addAnswer("zzzzzzzzzzzzz");
 
 
    q3 = new qustionWidget; //题目“控件”
    q3->setquestion("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
    q3->addAnswer("xxxxx");
    q3->addAnswer("yyyyyy");
    q3->addAnswer("zzzzzzzzzzzzz");
 
 
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(q1);
    vbox->addWidget(q2);
    vbox->addWidget(q3);
    setLayout(vbox);
}
 
 
Widget::~Widget()
{
 
 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT基础部件学习笔记 的相关文章

  • Qt 中的 QRadioButton 选中/取消选中问题

    我发现与选中 取消选中 QRadioButton 相关的问题 我用于检查 白点 和取消检查 没有白点 的图像未更新 我的问题是 我已经实现了一些 QRadioButton 第一次所有 QRadioButton 都检查为 false 因此 本
  • QObject:无法为位于不同线程中的父级创建子级

    我在 Windows 7 Ultimate 下使用 Qt 4 6 0 32 位 考虑以下QThread 界面 class ResultThread public QThread Q OBJECT QString post data QNet
  • 如何在C++、Qt、QML、Blackberry 10 Cascades Beta 3 SDK中制作图表/图形(如折线图、条形图、圆形图)等?

    我需要知道如何在 Blackberry 10 Cascades Beta 3 SDK QML Qt C 中制作图表 图表 如果有人可以向我展示一个例子或向我指出一些可以告诉我如何做到这一点的东西 我将不胜感激 您应该查看 QChart js
  • Qt 对象的生命周期

    Qt 对象的生命周期是多少 Such as QTcpSocket socket new QTcpSocket 套接字什么时候会被销毁 我应该使用 delete socket 有什么区别吗 QTcpSocket socket 我找不到有关此的
  • 在 QtCreator 中查看数组内容

    调试时是否可以在 Qt Creator 中查看数组的内容 似乎检测到我的数组是一个数组而不是一个指针 此外 我可以点击一个箭头 就像展开一样 但之后什么也没有显示 当我试穿的时候std vector Qt Creator 设法按预期显示内容
  • 在 Qt C++ 中使用多个键

    我正在构建 坦克 游戏 我使用关键事件在地图上运行我的坦克 实际上我当时只能使用一把钥匙 但我需要有能力去完成任务 同时向上和离开 这是我的单键事件代码 switch event gt key case Qt Key Up if ui gt
  • 如何设置 Xcode 来代替 Qt Creator 工作?

    我不使用 Qt Creator 的 UI 设计功能 对于一个新项目 我想体验一下使用 Xcode 的工作 这将是一个常规的 Qt 项目 使用 C 和 Qt 库开发 就像在 Qt Creator 中一样 我没有使用 OS X 尤其是 Xcod
  • 异步设计中如何知道哪个QNetworkReply属于QNetworkRequest?

    我可以轻松地用 C 进行异步设计 HttpResponseMessage response await httpClient GetAsync InputAddress Text run when request finished And
  • 删除 QComboBox“下拉”动画

    我正在使用 Qt 4 8 并且想在单击 QComboBox 时摆脱 下拉 动画 我也想稍微移动一下 到目前为止 我一直在考虑重新实现 showPopup 和 hidePopup 但不知道如何使其工作 此外 每次我尝试使用 CSS 进行移动或
  • QT 应用程序运行时错误?

    我已经在 Windows 7 的 Qt5 1 上开发了一个应用程序 现在我想分发它 由于我使用了 MINGW 编译器 因此无法静态构建它 我使用dependency walker找出所有dll并打包 当我在未安装 QT 开发环境的计算机上运
  • 我的 QSqlQueryModel 不在列表视图中显示数据

    我正在玩 QSqlQueryModel 但我现在完全陷入困境 我一整天都在寻找解决方案 但到目前为止还没有运气 我所做的工作是它从我的 sqlite 数据库中提取数据 但由于某种原因我无法在列表视图中显示它 我的角色名似乎不存在 对于我从数
  • QT 中的应用程序->处理消息?

    在 Borland 6 中 我经常使用它来解除程序操作的卡住 Application gt Processmessages 现在 对于 QT 4 8 1 我在这个外国 对我来说 QT 文档中找不到 谁能帮我 在 Qt 中 您可以使用静态函数
  • QToolBar 的菜单延迟

    我通过制作 QAction 并向其添加 QMenu 在 QToolBar 上有一个菜单 如何消除单击图标时出现菜单之前的延迟 QToolBar myToolBar new QToolBar this QAction myAction new
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • [本机]:在Qt for Android中使用Java函数和第3方库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我用qt写了一个android应用程序 但我有一个很大的问题 我可以使用 调用一些原生的android API 比如调用特殊的activit
  • 如何获取 QIcon 的文件/资源​​路径

    假设我做了这样的事情 QIcon myIcon resources icon ico 我稍后如何确定该图标的路径 例如 QString path myIcon getPath 问题是 没有getPath 会员 我找不到类似的东西 但肯定有办
  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 当我尝试构建 Qt 4.7.1 静态库时,“找不到 -ljscore”

    我尝试从最新的源构建静态 Qt 库 但出现以下错误 usr bin ld cannot find ljscore collect2 ld returned 1 exit status 如何解决这个问题呢 这是 Qt 构建系统中自 4 7 0

随机推荐

  • STM32F103移植FreeRTOS必须搞明白的系列知识---3(堆栈)

    STM32F103移植FreeRTOS必须搞明白的系列知识 1 Cortex CM3中断优先级 STM32F103移植FreeRTOS必须搞明白的系列知识 2 FreeRTOS任务优先级 STM32F103移植FreeRTOS必须搞明白的系
  • com.netflix.discovery.shared.transport.TransportException(问题解决)

    com netflix discovery shared transport TransportException Cannot execute request on any known server com sun jersey api
  • pymysql语句使用变量

    pymysql语句中想要使用变量的方法 1 替代 cursor excute insert into table1 values s value 2 逗号传参 cursor excute insert into table1 values
  • Linux下在非root权限下修改gcc版本(亲测可用)

    一 前言 最近在安装 香港中文大学 商汤科技联合实验室开源的基于 PyTorch 的检测库 mmdetection时候发现gcc版本需要在4 9以上 但是考虑到实验室服务器集群上gcc的版本还是比较旧的 作为一个非root用户又没有操作权限
  • STM32移植到GD32(以32的工程为模板简单三步完成移植)

    STM32移植到GD32 一 移植说明 最近有个项目想用GD替代原有的STM32 因为GD的成本更低 然后我就找了一些GD的资料 发现目前网上已有的一些资料都比较老 比如ST移植到GD的攻略 很多都停留在GD刚推广不久的过渡时期 目前已经不
  • 数据结构之排序:快速排序

    快速排序 Quick Sort 由 C A Hoare 在1962年提出 是冒泡排序的一种改进 采用了分治策略 将原问题划分成若干个规模更小但与原问题相似的子问题 然后递归方法解决 合并问题的解 基本思想 通过一趟排序将序列分割成独立的两个
  • C++ & QT 琐碎知识点

    此文仅记录C 和QT 学习过程中一些琐碎知识点 shadow build 是将源码路径和构建路径分开 主要将makefile和其它生成的文件分开 保证源码文件的清洁 qmke和cmake都有采用 pro user 用于记录打开工程的路径 所
  • SpringCloud Stream消息驱动

    目录 一 SpringCloud Stream概述 二 Binder 三 Consumer Groups 针对消费者 四 Publish Subscribe 介绍一下yml配置的含义 五 消息分组 六 消息分区 1 生产者方配置 2 消费者
  • osgEarth的Rex引擎原理分析(三十五)osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解

    目标 二十九 中的问题83 地球椭球体的中心为地心 形状为椭球体 大地基准面是适应某一区域的椭球体 球体中心不一定在地心 地图投影是球面和平面映射关系的方法 Horizontal Datum A datum is a reference p
  • 学Transformer前,你需要了解的Attention机制(基于注意力机制的Seq2seq可视化神经机器翻译模型)

    在我们开始学习transformer之前 应该了先解下什么是attention注意力机制 相关内容获取 欢迎关注公众号 AI技术星球 发送 222 序列到序列 Sequence to sequence 模型已经在机器翻译 文本摘要和图像字幕
  • ubuntu18.04 配置nfs服务

    1 安装nfs服务器软件 sudo apt install nfs kernel server 2 修改配置文件 添加nfs server上用于共享的目录 并设置允许访问该目录的客户机IP 及其读写权限 sudo vim etc expor
  • YOLOV5 和 Yolov5s各个版本的 发展史、论文、各个版本代码资源分享合集 !!!

    点击上方 码农的后花园 选择 星标 公众号 精选文章 第一时间送达 2020年2月份YOLO之父Joseph Redmon宣布退出计算机视觉的研究的时候 很多人都以为目标检测神器YOLO系列就此终结 没想到的是 2020年4月份曾经参与YO
  • 后台获取数据库时间出现的格式问题记录

    问题描述 要从数据库获取时间类型然后传给前台页面 数据库中的时间格式是yyyy MM dd HH mm ss 如图所示 但是获取出来时格式就变成了Mon Dec 13 10 04 16 CST 2021这种 解决 可以在前端或者后端解决 后
  • MYSQL数据库和表

    一 安装MYSQL数据库时生成系统使用的数据库 1 显示数据库 2 创建数据库 3 选择数据库 mysql gt use stusys Database changed 4 修改数据库 mysql gt alter database stu
  • win32应用程序_不是有效的win32应用程序怎么解决

    在日常办公中经常用到电脑 有许多使用技巧 本次给大家介绍不是有效的win32应用程序怎么办 快来看看吧 方法一 不是有效的win32应用程序表示这个应用程序和系统不兼容 用户可以在计算机属性页面查看系统是32位还是64位 之后下载相对应的应
  • 【源码】贝叶斯变化点检测与时间序列分解

    BEAST 突变 季节性和趋势的贝叶斯估计器 是一种快速 通用的贝叶斯模型平均算法 用于将时间序列或1D序列数据分解为单个组件 例如突变 趋势和周期 季节性变化 如Zhao等人 2019 所述 BEAST可用于变化点检测 即断点或结构中断
  • mysql进阶1——proxysql中间件

    文章目录 一 基本了解 二 安装部署 三 proxysql管理配置 3 1 内置库 3 1 1 main库表 3 1 2 stats库表 3 1 3 monitor库 3 2 常用管理变量 3 2 1 添加管理用户 3 2 2 添加普通用户
  • WSL无法访问网络的解决办法

    今天在用WSL的时候突然网络抽风 域名解析出了问题 apt update都用不了 网上查了很多方法 什么vEthernet的IP啊 ifconfigip啊 ip route add default啥的 都不管用 最后还是看了一下 etc r
  • 多益网络提前批前端面试(凉)

    题外话 面试时间是晚上7点多 多益还是加班严重啊 这点哈哈哈哈 下面正文 自我介绍 问项目 问看过的书籍 这里就是挖坑了 尽量找自己会的说 XHR HTTP1和HTTP2的区别 隐藏一个HTML标签 v for 为什么不能用index做ke
  • QT基础部件学习笔记

    目录 一 QT程序开发流程 二 QT基础部件分类 1 按钮类 普通 工具 单选 复选 命令连接 编辑 编辑 2 布局类 水平 垂直 网格 两列 该类的实例具体与其他类同时使用 编辑 3 输出类 标签 文本浏览器 日历 七段数码管 进度条 4