精华内容
下载资源
问答
  • qt5 CMakeList文件

    2020-12-05 20:13:24
    set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) PROJECT(TestCapture) SET(PROJECT_NAME TestCapture) set (CMAKE_BUILD_TYPE "Debug") #add_definit
    CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
    
    #add_subdirectory(ADMIN)
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    set(CMAKE_AUTOUIC ON)
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    PROJECT(TestCapture)
    SET(PROJECT_NAME TestCapture)
    set (CMAKE_BUILD_TYPE "Debug")
    #add_definitions (-Wall)
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    IF (NOT CMAKE_HOST_UNIX)
        MESSAGE(FATAL_ERROR "Not able to build on ${CMAKE_HOST_SYSTEM} ${CMAKE_SYSTEM_VERSION}")
    ENDIF (NOT CMAKE_HOST_UNIX)
    
    
    add_definitions("-g -std=c++11")
    # We need Qt4 and other libraries for the mviewer
    #SET(CMAKE_MODULE_PATH ./CMakeModules)
    set(CMAKE_PREFIX_PATH "/opt/spmlib/qt-5.11.2/lib/cmake/Qt5/")
    find_package(Qt5 COMPONENTS Widgets)
    INCLUDE_DIRECTORIES(
        ./include
        ./include/LibMWCapture)
    
    link_directories(${CMAKE_SOURCE_DIR}/lib64
    
    
        )
    add_executable (TestCapture
        main.cpp
        mainwindow.cpp
        mainwindow.h
        myopenglwidget.cpp
        myopenglwidget.h
        mainwindow.ui)
    
    #target_compile_options(spm -fsanitize=address -fno-omit-frame-pointer )
    # For datatk use this:
    #target_link_libraries (spm vtkGraphics vtkImaging vtkCommon vtkRendering vtkHybrid QVTK cad ${DCMTK_LIBS} oflog ofstd ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTXML_LIBRARY} datatk pugixml)
    # Without datatk use this
    
    target_link_libraries (TestCapture Qt5::Widgets  -lpthread -lMWCapture -lm   -ludev -lasound -lv4l2)
    
    展开全文
  • #pragma execution_character_set("utf-8")
  • 1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来。   2. dialog.h #ifndef DIALOG_H #define DIALOG_H #include #include namespace Ui ...

    1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来。

     

    2. dialog.h

    #ifndef DIALOG_H
    #define DIALOG_H
    
    #include <QDialog>
    #include <QtGui>
    
    namespace Ui {
    class Dialog;
    }
    
    class Dialog : public QDialog
    {
        Q_OBJECT
        
    public:
        explicit Dialog(QWidget *parent = 0);
        ~Dialog();
        
    private:
        Ui::Dialog *ui;
    
        QListWidget *listWidget;
        QStackedLayout *stackedLayout;
        QHBoxLayout *mainLayout;
    
        QLabel *label1;
        QLabel *label2;
        QLabel *label3;
    
    };
    
    #endif // DIALOG_H
    

     

    3. dialog.cpp

    #include "dialog.h"
    #include "ui_dialog.h"
    
    Dialog::Dialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Dialog)
    {
        ui->setupUi(this);
    
        setWindowTitle("test stackedlayout");
        mainLayout = new QHBoxLayout;
    
        label1 = new QLabel("label1");
        label2 = new QLabel("label2");
        label3 = new QLabel("label3");
    
        listWidget = new QListWidget;
        listWidget->addItem(tr("item1"));
        listWidget->addItem(tr("item2"));
        listWidget->addItem(tr("item3"));
    
        stackedLayout = new QStackedLayout;
        stackedLayout->addWidget(label1);
        stackedLayout->addWidget(label2);
        stackedLayout->addWidget(label3);
    
        connect(listWidget, SIGNAL(currentRowChanged(int)),
                stackedLayout, SLOT(setCurrentIndex(int)));
        listWidget->setCurrentRow(0);
    
        mainLayout->addWidget(listWidget);
        mainLayout->addLayout(stackedLayout);
    
        setLayout(mainLayout);
    }
    
    Dialog::~Dialog()
    {
        delete ui;
    }
    



     

    展开全文
  • 升级xcode 后 Qt 出问题了,google 找到了解决...http://stackoverflow.com/questions/33728905/qt-creator-project-error-xcode-not-set-up-properly-you-may-need-to-confirm-t ~> Xcode 8 This problem occu

    /*

    今天在mac上安装qt creator出现了这样的错误:Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.

    在网上找了好久终于找到一个可以解决问题的方案,所以转载一下。

    */


    升级xcode 后 Qt 出问题了,google 找到了解决方法。

    http://stackoverflow.com/questions/33728905/qt-creator-project-error-xcode-not-set-up-properly-you-may-need-to-confirm-t


    ~> Xcode 8

    This problem occurs when command line tools are installed after Xcode is installed. What happens is the Xcode-select developer directory gets pointed to /Library/Developer/CommandLineTools.

    Step 1:

    Point Xcode-select to the correct Xcode Developer directory with the command:

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    

    Step 2:

    Confirm the license agreement with the command:

    xcodebuild -license
    

    This will prompt you to read through the license agreement. 

    Enter agree to accept the terms.

    >= Xcode 8

    Step 1:

    As Bruce said, this happens when Qt tries to find xcrun when it should be looking for xcodebuild.

    Open the file:

    Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf
    

    Step 2:

    Replace:

    isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))))
    

    With:

    isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))
    展开全文
  • Qt中Model与List的使用

    千次阅读 2018-03-06 23:00:06
    Model本身不存储数据,但有一个List*成员,List内存储数据,每个List条目对应一个ModelIndex,可用index获取。 Model为List提供了访问、修改等接口,并对每个条目增设了一些额外信息。 Model内有一个值对表QMap,为...

    class PlaylistModel : public QAbstractItemModel
    {
        Q_OBJECT
    
    
    public:
        enum Column
        {
            Title = 0,
            ColumnCount
        };
    
    
        PlaylistModel(QObject *parent = 0);
    
    
        int rowCount(const QModelIndex &parent = QModelIndex()) const;
        int columnCount(const QModelIndex &parent = QModelIndex()) const;
    
    
        QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
        QModelIndex parent(const QModelIndex &child) const;
    
    
        QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
    
    
        QMediaPlaylist *playlist() const;
        void setPlaylist(QMediaPlaylist *playlist);
    
    
        bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DisplayRole);
    
    
    private slots:
        void beginInsertItems(int start, int end);
        void endInsertItems();
        void beginRemoveItems(int start, int end);
        void endRemoveItems();
        void changeItems(int start, int end);
    
    
    private:
        QMediaPlaylist *m_playlist;
        QMap<QModelIndex, QVariant> m_data;
    };

    代码来自QT示例程序Media Player Example

    Model是QAbstractItemModel的继承类,List是QMediaPlaylist。
    Model本身不存储数据,但有一个List*成员,List内存储数据,每个List条目对应一个ModelIndex,可用index获取。

    Model为List提供了访问、修改等接口,并对每个条目增设了一些额外信息。

    Model内有一个值对表QMap,为每个数据条目提供额外的信息,可用data获取,用setData添加。

    使用Model时先setPlaylist:

    void PlaylistModel::setPlaylist(QMediaPlaylist *playlist)
    {
        if (m_playlist) {
            disconnect(m_playlist, SIGNAL(mediaAboutToBeInserted(int,int)), this, SLOT(beginInsertItems(int,int)));
            disconnect(m_playlist, SIGNAL(mediaInserted(int,int)), this, SLOT(endInsertItems()));
            disconnect(m_playlist, SIGNAL(mediaAboutToBeRemoved(int,int)), this, SLOT(beginRemoveItems(int,int)));
            disconnect(m_playlist, SIGNAL(mediaRemoved(int,int)), this, SLOT(endRemoveItems()));
            disconnect(m_playlist, SIGNAL(mediaChanged(int,int)), this, SLOT(changeItems(int,int)));
        }
    
    
        beginResetModel();    //inherited:对underlying data大批量修改时先调用此函数
        m_playlist = playlist;
    
    
        if (m_playlist) {
            connect(m_playlist, SIGNAL(mediaAboutToBeInserted(int,int)), this, SLOT(beginInsertItems(int,int)));
            connect(m_playlist, SIGNAL(mediaInserted(int,int)), this, SLOT(endInsertItems()));
            connect(m_playlist, SIGNAL(mediaAboutToBeRemoved(int,int)), this, SLOT(beginRemoveItems(int,int)));
            connect(m_playlist, SIGNAL(mediaRemoved(int,int)), this, SLOT(endRemoveItems()));
            connect(m_playlist, SIGNAL(mediaChanged(int,int)), this, SLOT(changeItems(int,int)));
        }
    
    
        endResetModel();    /inherited:修改结束再次调用
    
    

    上述5个槽函数将list的变化传递给model,如:

    
    
    void PlaylistModel::beginInsertItems(int start, int end)
    {
        m_data.clear();    //每当list条目增加、删减、变化时将Model内条目的值对表清空,并将这些变化传递给model
        beginInsertRows(QModelIndex(), start, end);
    }

    其他几个槽函数都类似

    下面对几个接口进行简述

    int PlaylistModel::rowCount(const QModelIndex &parent) const
    {    //返回条目数,m_playlist在构造函数中赋值0,在列表中parent为root元素所以为空
        return m_playlist && !parent.isValid() ? m_playlist->mediaCount() : 0;
    }
    QModelIndex PlaylistModel::index(int row, int column, const QModelIndex &parent) const
    {    //根据list中的行与列返回model中对应的modelindex
         //若给出的行与列有效则返回相应modelindex,否则返回空元素
    
        return m_playlist && !parent.isValid()
                && row >= 0 && row < m_playlist->mediaCount()
                && column >= 0 && column < ColumnCount
            ? createIndex(row, column)
            : QModelIndex();
    }
    QModelIndex PlaylistModel::parent(const QModelIndex &child) const
    {    //在list中parent必为空
        Q_UNUSED(child);    //宏告诉编译器child参数用不到,避免警告
    
    
        return QModelIndex();
    }
    
    
    bool PlaylistModel::setData(const QModelIndex &index, const QVariant &value, int role)
    {    //在值对表中为条目添加额外信息
        Q_UNUSED(role);
        m_data[index] = value;
        emit dataChanged(index, index);
        return true;
    }
    QVariant PlaylistModel::data(const QModelIndex &index, int role) const
    {    //当role正确时,从值对表中获取条目的额外信息;当额外信息不存在时,返回条目对应文件信息作为额外信息
        if (index.isValid() && role == Qt::DisplayRole) {
            QVariant value = m_data[index];
            if (!value.isValid() && index.column() == Title) {
                QUrl location = m_playlist->media(index.row()).canonicalUrl();
                return QFileInfo(location.path()).fileName();
            }
    
    
            return value;
        }
        return QVariant();
    }

    model存储数据结构如下,list类型的model可视为treeModel的特殊情况,所以上述parent参数为0(root item)

    QModelIndex indexA= model->index(0,0,QModelIndex());

    QModelIndex indexC = model->index(2,1,QModelIndex());

    QModelIndex indexB = model -> index( 1, 0, indexA);


    //程序中QAbstractItemModel相关接口:
    int rowCount(const QModelIndex &parent = QModelIndex()) const;
    int columnCount(const QModelIndex &parent = QModelIndex()) const;
    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
    QModelIndex parent(const QModelIndex &child) const;
    //获取子项目的额外信息
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
    //设置子项目的额外信息
    bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DisplayRole);
    //对底层数据进行reset前使用
    [protected] void QAbstractItemModel::beginResetModel()
    //底层数据reset完毕后使用
    [protected] void QAbstractItemModel::endResetModel()
    //对底层数据增加条目前后,删减条目前后使用
    [protected] void QAbstractItemModel::beginInsertRows(const QModelIndex &parent, int first, int last)
    [protected] void QAbstractItemModel::endInsertRows()
    [protected] void QAbstractItemModel::beginRemoveRows(const QModelIndex &parent, int first, int last)
    [protected] void QAbstractItemModel::endRemoveRows()

    展开全文
  • 原因:同事使用qt .pro链接库...cmakelist.txt cmake_minimum_required(VERSION 2.8) set(CMAKE_BUILD_TYPE Debug) project(xxx) find_package(Qt5Core REQUIRED) find_package(Qt5Widgets REQUIRED) find_pack
  • #moc主要用途 是将有QTOBJECT等宏的文件 展开生成编译器能识别的cpp文件 名称为moc_xxx.cpp #moc 主要是自动调用了qt库目录bin 下的moc工具命令 SET(CMAKE_AUTOMOC ON) #打开ui文件自动编译 #有窗口设计文件XXX.ui ...
  • 【转帖请注明出处:http://blog.csdn.net/lanmanck】qt带的类只能读取,要修改系统的还需要datehwclock:QProcess changedt,syncit;QStringList cmdlist; cmdlistdateTimeEdit->dateTime().toString("yyyy-MM-dd ...
  • setWindowTitle ( tr ( "历史记录选择" ) ) ; QString root = "../zyl" ; //文件存在的目录 QDir rootDir ( root ) ; QString name = "*.csv" ; //选择要筛选的文件类型 QStringList filters ; ...
  • Qt PyQt

    万次阅读 2018-11-05 14:56:53
    转载https://i.csdn.net/#/uc/favorite-list 用于 Python 的高级 GUI 库 一般来说,选择用于应用程序的 GUI 工具箱会是一件棘手的事。使用 Python(许多语言也一样)的程序员可以选择的 GUI 工具箱种类繁多,而每...
  • 解决升级Xcode8之后Qt出现Project ERROR: Xcode not set up properly错误自从升级了Xcode后,升到版本8,Qt在编译代码的时候总会弹出如下错误“Project ERROR: Xcode not set up properly.You may need to confirm ...
  • Qt

    千次阅读 2010-12-21 22:06:00
    最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章。E文的除了Qt的官方介绍,其它文章也很少。看到一个老外在blog中写道Model/View是他认为Qt中最不好的一部分了。真的...
  • Qt应用错误笔记

    千次阅读 2017-02-24 16:13:49
    1. qt this does not seem to be a debug build Com.pro中CONFIG += qt warn_off release改为CONFIG += qt warn_off debug,Buid->Rebuild All即可。 Qt Creator->工具->选项->构建套件->手动设置-...
  • Qt信号槽机制

    万次阅读 2017-11-19 16:47:42
    一个小例子 ...第三方库信号槽使用Qt一个小例子一个小的C++类声明如下: class Counter { public: Counter() { m_value = 0; } int value() const { return m_value; } void setValue(int value)
  • Qt Creator - Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild首先确认安装了CommandLineTools, 在shell中输入 xcode-select --in
  • QT学习---listWidget自绘

    千次阅读 2018-06-08 16:04:36
    一、自绘的主要步骤是:1、派生QStyledItemDelegate的子类;2、重写虚函数:sizeHint()、paint();3、设置listWidget的委托对象。...二、实现:1、项listWidget部件中添加些测试数据:ListWidget::ListWi...
  • drag->exec(Qt::CopyAction|Qt::MoveAction); } void MyListWidget::mousePressEvent(QMouseEvent *event){ m_dragPosition=event->pos(); m_dragItem=this->itemAt(event->pos()); //保持父类继承下来的按键...
  • 如下图:原因是上篇博文,拖拽,是直接从ListWidget脱到场景中的。而正在要实现的逻辑是,拖到视图中,然后视图再往场景放图元。而且,最好是对拖动的图像,也自定义下,这是为了重写,画图边框...
  • 接上文Qt5官方demo解析集18——Chapter 4: Using Custom Property Types 上个例子向我们展示了如何为QML调用的C++类型添加自定义类型的属性,在这个例子中我们更进一步,将这个类型更换为一个Pie
  • Qt Tablewidget表格数据的导出导入

    千次阅读 多人点赞 2021-02-07 14:46:01
    QT里面自带的TableWidget控件可以实现表格显示的功能,刚开始学习TableWidget,只是自己提前创建好表格,规定好数据,但真正的软件不会让我们规定好数据格式。下面我们一起来看一下,如何导入xls文件,自动生成表格...
  • ICU57 + Qt5.9.1 + QtWebKit在VC14下编译编译所需工具 工具 下载地址 Qt Source https://download.qt.io/archive/qt/5.9/ VS Compiler ...
  • Qt5 安装与配置, Qt应用打包发布

    千次阅读 2019-02-03 14:35:39
    Qt5 安装与配置Qt5 安装与配置window下安装Qt5mac下安装Qt5Mac环境准备工作Mac Qt5 安装Mac下安装Homebrew工具Mac下安装Python3.6Mac下Pycharm集成PyQt5Mac Qt 环境变量配置linux下安装Qt5QT编译运行中的问题1. Qt ...
  • qt 服务器客户端

    千次阅读 2018-12-24 12:42:12
    2. 客户端可以监视多个客户端, 可以群发单发 3. 输入框使用 "eventFilter" , 来使用 "回车" 发送消息   一、 服务器端 1. 在 .pro 文件中添加 QT += core gui network 2. 定义: ...
  • qtdesigner sqlite qt

    2010-03-01 20:19:46
    When Qt Designer starts, it will pop up a list of templates. Click the "Dialog" template, then click OK. You should now have a window called "Form1". Figure 2.5. Qt Designer with an empty form The...
  • 接上文Qt5官方demo解析集21——Extending QML - Adding Types Example 在上一个例子中我们基于C++创建了一个自定义的QML类型,接下来,我们将该类作为另一个类的属性类型,定义了另一个birthda
  • 本文根据已有的CMakeList.txt工程利用Qt Creator创建CMake工程。 参考文献:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Setting+Up+An+Application+-+QtCreator+-+Linux 参考文献:...
  • qt

    千次阅读 2018-06-06 07:21:02
    313、qt为了处理复杂程序,防止该程序阻碍主线程,可以利用子线程执行该程序?答、对。314、问如何为qwidget窗口,设置自适应窗口大小的背景图片?答、 QPalette palette; QPixmap pixmap; pixmap.load(":/...
  • Qt】数据类型有用的数据操作类

    千次阅读 2018-11-22 14:38:29
    Qt提供的数据类型分为基本数据类型类形态的数据类型。   基本数据类型 Qt支持多个平台,创建的应用程序需要在多种平台上都具有相同大小的数据类型。为了能精确指定数据类型的大小,Qt提供了一下的基本数据类型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,947
精华内容 9,578
关键字:

qtset和list