小编Exa*_*Exa的帖子

QTimer的剩余时间

在我的一个项目中,我正在使用QTimer,我想知道是否有可能获得QTimer的剩余时间以便让用户知道"下次超时的时间:10秒"或类似的东西......是那可能吗?如果不是这样,有没有关于如何实现这一点的好主意?

也许我要写自己的Timer ...

qt qt4

6
推荐指数
1
解决办法
8295
查看次数

Qt:在Qt设计器中是否可以将信号连接到信号

我一直在读信号和插槽文档,它说你可以将信号连接到信号并触发连接到链中第二个信号的插槽.我无法在Qt设计器中找到一种方法,它只允许您将信号连接到插槽而不是信号连接到信号.此外,我无法在文档中找到它,但如果信号连接到信号,第一个信号携带QString参数,例如QString将沿着链传播.

谢谢!

qt signals qt4 qt-designer

6
推荐指数
1
解决办法
1711
查看次数

在API函数调用中使用nullptr?

在Visual Studio 2010中使用C++.我正在将我的转换NULLnullptr.用我的代码这很好.但是如果我打电话给WINAPI,例如:

__checkReturn WINOLEAPI OleInitialize(IN LPVOID pvReserved);
Run Code Online (Sandbox Code Playgroud)

通常我会称之为:

::OleInitialize(NULL);
Run Code Online (Sandbox Code Playgroud)

我可以安全地使用nullptrNULL在这样的电话中使用的地方吗?

也就是说,我可以这样做:

::OleInitialize(nullptr);
Run Code Online (Sandbox Code Playgroud)

与MFC api一样:

CFileDialog fileDlg(TRUE, ".txt", NULL, 0, strFilter);
Run Code Online (Sandbox Code Playgroud)

我可以更换吗?

CFileDialog fileDlg(TRUE, ".txt", nullptr, 0, strFilter);
Run Code Online (Sandbox Code Playgroud)

我猜我可以,但我只是想确保没有陷阱.

UPDATE

所以我通过nullptr替换了我的所有NULL,它似乎在所有地方工作,但是我在下面的行中得到以下错误:

propertyItem = new CMFCPropertyGridProperty(_T("SomeName"),
"SomeValue", "SomeDescription", nullptr, nullptr, nullptr, nullptr);
Run Code Online (Sandbox Code Playgroud)

8> c:\ something\something.cpp(118):错误C2664:'CMFCPropertyGridProperty :: CMFCPropertyGridProperty(const CString&,const COleVariant&,LPCTSTR,DWORD_PTR,LPCTSTR,LPCTSTR,LPCTSTR)':无法从'nullptr转换参数4 'to'DWORD_PTR'8>本机nullptr只能转换为bool,或者使用reinterpret_cast转换为整数类型

(注意CMFCPropertyGridProperty是Microsoft MFC类)那么这是什么意思?

c++ null winapi mfc nullptr

6
推荐指数
1
解决办法
2401
查看次数

如何从QTextEdit或QPlainTextEdit小部件获取当前可见的文本?

看起来这是常见的事情,但我无法找到.

我有一个带有大量文本的QTextEdit或QPlainTextEdit小部件.足够滚动是必要的.

我想要另一个小部件来提供有关当前可见文本的一些信息.要做到这一点,我需要知道

  1. 当可见文本发生变化时
  2. 什么是文字?

我看到QPlainTextEdit的方法是firstVisibleBlock,但它受到保护.这告诉我,这不是我应该在我的应用程序中使用的东西.否则我不需要从编辑窗口子类化.

我也看到有信号updateRequest,但我不清楚我对QRect做了什么.

我该怎么做或在哪里找到提示?

c++ qt qtextedit

5
推荐指数
1
解决办法
3352
查看次数

使用要存储的额外数据自定义QListWidgetItem,如何?

QListWidgetItem包含2个数据:图标和文本.我想在其中存储另一个QString.我能怎么做?这是我的测试代码.在调用addItem之后,ListWidget不显示任何内容.

我怎么知道点击了哪个项目?SLOT函数是"void on_listWidget_itemClicked(QListWidgetItem*item)".显然,参数项是父类:QListWidgetItem,而不是子类:ListWidgetItem

ListWidgetItem::ListWidgetItem(const QIcon &icon, const QString &text,QString &ip, QListWidget *parent, int type)
{
    myip = ip;
    QListWidgetItem::QListWidgetItem(icon,text,parent,type);
}

ListWidgetItem::~ListWidgetItem()
{

}

QVariant ListWidgetItem::data(int role) const
{
    if (role==IPROLE)
    {
        return myip;
    }
    return QListWidgetItem::data(role);
}

void ListWidgetItem::setData(int role, const QVariant &value)
{
    if (role==IPROLE)
    {
        myip = value.toString();
    }
    QListWidgetItem::setData(role,value);
}
Run Code Online (Sandbox Code Playgroud)

customization qt qlistwidget

5
推荐指数
2
解决办法
8318
查看次数

如何在C++中将文件编码格式设置为UTF8

我的软件的要求是包含导出数据的文件的编码应为UTF8.但是当我将数据写入文件时,编码总是ANSI.(我使用Notepad ++来检查这个.)

我目前正在尝试通过读取文件,将其转换为UTF8并将文本写入新文件来手动转换文件.

linestd::string
inputFilestd::ifstream
pOutputFileFILE*

// ...

if( inputFile.is_open() )
{
    while( inputFile.good() )
    {
        getline(inputFile,line);

        //1
        DWORD dwCount = MultiByteToWideChar( CP_ACP, 0, line.c_str(), -1, NULL, 0 );
        wchar_t *pwcharText;
        pwcharText = new wchar_t[ dwCount];

        //2
        MultiByteToWideChar( CP_ACP, 0, line.c_str(), -1, pwcharText, dwCount );

        //3
        dwCount = WideCharToMultiByte( CP_UTF8, 0, pwcharText, -1, NULL, 0, NULL, NULL );
        char *pText;
        pText = new char[ dwCount ];

        //4
        WideCharToMultiByte( CP_UTF8, 0, pwcharText, -1, pText, dwCount, …
Run Code Online (Sandbox Code Playgroud)

c++ winapi utf-8 character-encoding

5
推荐指数
1
解决办法
1万
查看次数

OVA 导入失败

当我尝试在 Vmware Workstation 12 上打开 ova 时,我收到了这个弹出窗口:

导入失败,因为 XXXXXX.ova 未通过 OVF 规范符合性或虚拟硬件符合性检查。

单击重试放宽 OVF 规范和虚拟硬件合规性检查并再次尝试导入,或单击取消取消导入。如果您重试导入,您可能无法在 VMware Workstation 中使用虚拟机。

我尝试了 2 个不同的文件,它们是相同的。我尝试重新安装工作站,但仍然存在问题。我可以将这些文件上传到另一台计算机上..

想法?

upload virtual ova ovf

5
推荐指数
0
解决办法
6508
查看次数

矢量迭代器不兼容

我目前正在为C++开发一个图形库,现在卡在运行时调试模式中出现断言错误的位置.我也在这里看了一些关于SO的问题,但没有一个问题和答案引导我找到解决方案.在一些论坛中阅读后,我发现这个错误的发生是因为一旦矢量内容发生变化,迭代器就会失效.(例如在使用时erase())但是正如你在我的代码中看到的那样,我不是在修改向量,只是迭代.

错误出现在我标记的行中//ASSERTION.奇怪的是,neighbor_it它并没有指向第一个对象,(*vertex_it)->neighbors(而是指向0xfeeefeee.通过代码调试时,我可以清楚地看到neighbors-vector包含至少一个项目.不应该neighbor_it指向此向量中的第一个对象?

有关详细信息:m_vertices是图形中所有顶点的向量,并vertex::neighbors()返回边向量(其具有指向邻居/目标顶点的指针).在这个方法中,我想删除指向某个顶点的所有边.如果找到并删除了相应边,则返回true;如果没有指向边,则返回false p_vertex.

bool graph::remove_edges_pointing_to( vertex* p_vertex )
{
    bool res = false;

    std::vector<vertex*>::iterator vertex_it = m_vertices.begin();

    // iterate through all vertices
    while( vertex_it != m_vertices.end() )
    {
        // iterator on first element of neighbors of vertex
        std::vector<edge*>::iterator neighbor_it = (*vertex_it)->neighbors().begin();

        // iterate through all successors of each vertex
        while( neighbor_it != (*vertex_it)->neighbors().end() ) //ASSERTION
        {
            if( (*neighbor_it)->dest() == p_vertex )
            { …
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl vector stdvector

4
推荐指数
1
解决办法
7415
查看次数

Qt:在数字字符串上使用QSortFilterProxyModel并获取错误的列文本时排序错误

我有简单的模型视图树视图与QSortFilterProxyModel代理来排序列和QStandardItemModel作为
每个列中的模型有字符串得到精细排序但在包含数字(作为字符串)的列中排序错误.
说我有9,12,1(不同栏中的每个数字,当我对它们进行排序时,得到1,12,9或12,1,9,但从未按正确顺序排列.如1,9,12或12,9,1为什么呢?
我也注意到当我逐列排序时,当我尝试获取新列文本时, m_model->item(iSelectedRow,0)->text();
我得到的是初始列文本,但从来没有新的排序列文本.为什么?

sorting qt qtreeview

3
推荐指数
1
解决办法
5544
查看次数

在PyCharm中没有PyQt4的自动完成功能

在我的办公室电脑上,我正在使用

  • Python 3.4
  • PyQt4版本4.11.1
  • PyCharm社区编辑3.4.1

我按照上面说明的顺序安装了所有东西.

但是,代码完成不起作用.它适用于导入,但不适用于类和方法.

我制作了一个小样本程序:

import sys
from PyQt4 import QtGui


app = QtGui.QApplication(sys.argv)

window = QtGui.QWidget()

window.setWindowTitle("Test")
window.resize(300, 200)
window.show()

sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,PyCharm没有提出任何类或方法.

如果我输入,window.setW我会期望它建议,setWindowTitle()但事实并非如此.

奇怪的是,我在家里的电脑上使用相同的设置,它就像一个(Py)魅力...自动完成,自动导入等等.据我记得我安装它的方式和我一样在我的办公室电脑上做了.

我已经看过一些类似的问题,但这个问题没有答案,其他问题没有包含迄今为止帮助我的相关信息.


不知道它是否相关但是在这条线上

from PyQt4 import QtGui
Run Code Online (Sandbox Code Playgroud)

PyCharm告诉我

未解决的参考'QtGui'

也许这个原因是一样的.

python pyqt4 pycharm

3
推荐指数
1
解决办法
6481
查看次数