精华内容
下载资源
问答
  • 初学QT,今天发现将一些自带的QT类型声明称静态以后(例如QStringlist),无法初始化的情况。静态变量如果不初始化,直接使用的话,编译器就会提示LINK错误。即提示,无法解析的外部符号。那么如何使用这类静态变量...

    初学QT,今天发现将一些自带的QT类型声明称静态以后(例如QStringlist),无法初始化的情况。

    静态变量如果不初始化,直接使用的话,编译器就会提示LINK错误。即提示,无法解析的外部符号。

    那么如何使用这类静态变量呢,其实在QT creator中,只需要在.cpp中声明一次就行,可以不用初始化。例如:

    class checkall : public QWidget
    {  // 头文件.h
        Q_OBJECT
    
    public:
        explicit checkall(QWidget *parent = 0);
        ~checkall();
        static QStringListModel m_listmodel;
    
    private:
        Ui::checkall *ui;
    };

    mainwindow中使用:

    QStringListModel checkall::m_listmodel; // 先声明
    void MainWindow::checkalltable(){
        checkall::m_listmodel.setStringList(tablelist);  // 后使用
        ca = new checkall(NULL);
        ca->show();
    }

    展开全文
  • 1.connect(this->m_texttextlist,SIGNAL(phoneNumberReleased()),this,SLOT(onClickTelNumToCall(QString)),Qt::UniqueConnection); 2.onClickTelNumToCall()函数的参数由信号函数传递过来 void TextListS
                            编程中的错误笔记(一)
    一.遇到的错误
    1.connect(this->m_texttextlist,SIGNAL(phoneNumberReleased()),this,SLOT(onClickTelNumToCall(QString)),Qt::UniqueConnection);
    2.onClickTelNumToCall()函数的参数由信号函数传递过来
    void TextListSMS::onClickTelNumToCall(QString clickedTelNum)
    {
        char reply[256]={0};
        sprintf(reply,"TelNum=%s",clickedTelNum);//error
        MVVM_NOTIFY((char*)"phone",reply)
    }

    error information:cannot pass objects of non-trivially-copyable
    type 'std::string {aka struct std::basic_string<char>}' through '...'

    意思是:不能通过 '...' 通过 'std::string {aka 结构 std::basic_string <char>}'
           非琐细地复制类型的对象
           在使用结构前没有对变量初始化就直接调用

    之所以这样报错时因为MVVM_NOTIFY((char*)"phone",reply)这个宏里的参数reply需要
    是(char*)类型或者说C string,所以sprintf()中的参数类型要保持一致.需要从string类型做一下转化.
    所以需要修改成:
    void TextListSMS::onClickTelNumToCall(QString clickedTelNum)
    {
        char reply[256]={0};
        sprintf(reply,"TelNum=%s",clickedTelNum.toStdString().c_str());
        //QString-->C++ string --> C string
        MVVM_NOTIFY((char*)"phone",reply)
    }

    一般:
    在代码中使用了类似"%s"等格式化来处理string类型的时候,出现:
    cannot pass object of non-POD type 'string'(aka 'basic_string<char>')through variadic function
    这样的错误,是由于:
    printf,scanf,fprinf等可以format的一个字符串中使用"%s"时,只能使用C string;
    如果是C++ string的话,就必须先变成C string,否则就会出现类似上面的错误.


    也说明一点:
    在C++中是不强调使用前数据须初始化的,这会造成很多程序问题甚至是隐藏的隐患,所以是不安全的,
    而在C#中有自动监测是否使用了未初始化的变量,所以,C#称为安全的语言.




    二.相关知识:string和QString类型转化
    QString qstr;
    string str;

    str = qstr.toStdString();
    qstr = QString::fromStdString(str);

    更多详细介绍参考另一篇:
    QString与String
    http://blog.csdn.net/q601510717/article/details/8350217





    展开全文
  • QT5中 类成员变量初始化

    千次阅读 2016-08-26 17:16:36
    不能 类的声明中 进行 QString usr_id("admin");这样的初始化初始化要到在初始化参数列表中。 先蛋疼的记着 打算买本深入理解c++11





    不能   类的声明中  进行 QString  usr_id("admin");这样的初始化,初始化要到在初始化参数列表中。


    展开全文
  • //DbUtil.h #ifndef DBUTIL_H#define DBUTIL_H using namespace std;...QString md5Encode(QString passwd);class DbUtil { public: static QString checkNameT; static void setCheckNameStat...
    
    
    //DbUtil.h
    #ifndef DBUTIL_H

    #define DBUTIL_H
    using namespace std;
    QString md5Encode(QString passwd);

    class DbUtil {
    public:
         static QString checkNameT;
         static void setCheckNameStat(QString checkNameTemp);
    };


    //
    DbUtil.cpp
    #include "DbUtil.h"
    #include "QFile"
    #include <QDebug>
    #include <QString>
    QString DbUtil::checkNameT ="";//一定要记得初始化,对于静态变量,不然编译通不过
    void DbUtil::setCheckNameStat(QString checkNameTemp){
        checkNameT = checkNameTemp;
        qDebug()<<"DbUtil::checkNameTemp="<<checkNameT;
    }

    转载于:https://www.cnblogs.com/hust-yingjie/p/5827384.html

    展开全文
  • 但是要先把这个变量初始化。。。新手不懂啊。怎么把dataForUser在message.cpp中初始化 代码: #include "avl.cpp" #include "persondata.h" #ifndef MESSAGE_H #define MESSAGE_H class message { public: static ...
  • 非整数类型的静态数据成员的初始化错误 错误:类中对具有非整数类型 ‘const QString’ 的静态数据成员的初始化无效 说明:在头文件里对非整型和枚举型的成员变量定义时,若同时赋初值,就会有这...
  • 定义结构体后,使用memset对变量进行初始化。再对结构体中的普通类型(如int、bool等)变量进行赋值时,运行正常。当对QString类型变量赋值时,出现段错误。 示例代码 #include <QCoreApplication> #include <...
  • 问题: 类中定义了一个静态成员变量static QString ... 在直接调用类静态成员userName时,QT提示如下错误: 解决: 在CPP文件中初始化类的静态成员变量QString Parameter::userName = "sa"; 本文用菊子曰发布
  • 目录1 声明2 初始化3 使用 1 声明 //A.h extern QMap<ToolTask, QString> KToolTaskTxt; 2 初始化 全局区域初始化 //A.cpp QMap<ToolTask, QString> KToolTaskTxt={ {I_ADD_SCREW,"add screw"}, {I_...
  • 先描述一下整个代码的情况,有这么两个类,一个是QA,一个是QB,在QA类中有这么一个方法func,它初始化一个QB类的实例;使用以下代码进行初始化;QA::func()...{ QString *p_str; p_str = new QString("hello...
  • 问题: 原因:QStringlist数据类型的变量为空 如何发现原因:在各个位置输出,找到异常输出的位置,然后发现QStringlist数据类型的...总结:这种异常类似的原因有使用空变量,未初始化变量,空指针 完美解决~ ...
  • 在头文件中定义一个 全局变量static QMap,QString>pool 在源文件函数中初始化pool QMap,QString> address_pool::pool.insert(i,IP); 然后就报错,大神们求解决,困恼了2天了
  • Qt5中文乱码问题

    2013-11-16 20:21:33
    在构造函数中初始化变量codec = QTextCodec::codecForName("GB18030"); 在每次使用中文的时候直接调用 codec->toUnicode("打开文件") 对于中文路径 QString filename = QFileDialog::g
  • qt 通过Http/https 模拟 get 和Post请求

    千次阅读 2020-02-04 12:42:09
    简单点,说话的方式简单点. 模拟Get请求 .h中创建两个变量 QString m_strGetURL; //Get请求地址 QNetworkRequest m_netGetRequestHead...初始化函数中 /* 组装协议头 */ m_netGetRequestHead.setRawHeader("Acce...
  • QT一些有意思的问题

    2020-04-09 21:14:35
    1。在结构体中含有一些qt的类型变量(对象类),并不能通过memset()初始化,这会导致使用或删除时崩溃,举例简单说memset会将qstring置为空指针,这时候你去赋值,直接接会崩溃。 ...
  • const 内联 枚举 宏

    2016-11-08 20:46:00
    const 常量  程序运行时在常量表中,系统为它分配内存,在堆栈分配了空间;const常量有数据类型;...在类中定义并初始化const变量是不合法的  static QString CC_VERTICAL_LINE("TEX_PNG_BUHIN_01_1...
  • //tc为包含QTextEdit控件类的成员变量,在该控件类构造函数中已经初始化了 this1->tc.movePosition(QTextCursor::End,QTextCursor::KeepAnchor); //问题在这里,tempS的值始终为空串 tempS=this1->tc....
  • 10.在logindlg.cpp 的loginDlg 类构造函数里,添上初始化语句,使密码显示 为小黑点。 loginDlg::loginDlg(QWidget *parent) : QDialog(parent), m_ui(new Ui::loginDlg) { m_ui->setupUi(this); m_ui->pwdLineEdit-...
  • SSO-WebDemo

    2013-08-12 20:25:57
    解压缩SSOWebDemo1和SSOWebDemo2文件,分别在它们/WEB-INF/下找到web.xml文件,请修改其中的几个初始化参数 <param-name>SSOServiceURL <param-value>...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

qstring变量初始化