Articles of qt4

为Qt应用程序创buildLinux安装

我只是用Qt Creator做了一个很棒的程序。 我对自己很满意。 如何将其从桌面移动到笔记本电脑? 那么,最好的方法是安装程序? 而对于Ubuntu,这是一个debian包吗? 我怎么做? 有人这样做,他们可以共享QT 4.5的模板文件吗? 谢谢, 麦克风

Qt的最好的方式来显示非常大的富文本?

我需要显示非常大的日志,使用HTML标记标记不同types的数据。 使用QTextEdit和QTextBrowser真的会减慢应用程序,特别是在追加操作。 我真的想保持QTextEdit界面和能力。 我见过一些实现了自己的TextEdit风格的人来提高性能,但是如果有人使用“Qt”工具解决了这个问题的话,我会徘徊不前。 我想过使用Model / View框架来根据需要加载数据,但这不像我想的那样。 也许inheritanceQTextEdit并覆盖一些插槽滚动… 如果有人遇到这个问题,并解决它,我将不胜感激一些提示。 谢谢。

Qt版本无效

我正在使用Linux,我已经安装了Qt Creator 2.5.2,Qt库4.7.4和4.4.3。 我不能直接安装二进制文件,因为版本之间不兼容。 Qt 4.7.4和Qt 4.4.3的安装过程都是一样的。 我面临的问题是Qt Creator认识到Qt 4.7.4,而不是Qt 4.4.3,错误 Qt版本无效:无法确定Qt安装的二进制文件的path,可能path错误。 那么每个库都安装在/home/$username/qt/Qt-$version 。 当我手动编译一个项目 cd directory /home/$username/qt/Qt-4.4.3/qmake $PATHPRO make 一切工作的魅力,我可以运行应用程序。 我试过了什么? 重新编译Qt-4.4.3 检查文件夹权限 重新启动Qt Creator 在我的桌面上粉碎我的头 有什么想法吗? 操作系统是SUSE Enterprise 11-32位。

如何设置QMainWindow作为模态?

我正在使用QMainWindow进行我的项目的GUI开发..我困住的一个问题是阻止所有其他可见窗口获取input,而一个正在运行。 我不能使用QDialog。因为QMainWindow的丰富function是必需的。 我怎样才能将特定的窗口声明为模态? 我尝试使用QWidget::setWindowMOdality() 。 这是一个演示程序,我试过了,但没有奏效。 #include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char **argv){ QApplication a(argc, argv); QMainWindow *w1 = new QMainWindow(); w1->resize(500,800); w1->move(100,50); w1->show(); QMainWindow *w2= new QMainWindow(); w2->resize(800,500); w2->move(50,50); w2->show(); w2->setWindowModality(Qt::ApplicationModal); return a.exec(); }

如何将X11事件传递给QDialog

目前,我正在尝试将系统X11事件(在Linux上)传递给我创build的对象。 要做到这一点,我已经从我的QApplication安装了一个eventFilter到我的对象。 这是有效的,因为它获得了应用程序的所有事件。 不过,我也需要传递对象X11事件。 我继续前进,在我的对象中创build了一个x11Event,希望它能够接收来自X11的事件,但事实并非如此。 反正有X11事件直接传递给我的对象,在我的应用程序?

如何从C ++程序中重新启动Linux?

我有一个Qt 4 GUI,我需要在下拉菜单中有一个选项,允许用户select重新启动计算机。 我意识到这可能似乎与其他方式重新启动计算机的能力,但select需要留在那里。 我已经尝试使用system()来调用以下内容: 一个suid-root shell脚本 一个非suid的shell脚本 一个suid-root二进制程序 所有这些都是正因为如此 重新启动:必须是超级用户 被打印。 使用system()来直接调用重启也是一样的。 我并不特别用system()来做到这一点,但它似乎是最直接的select。 我如何从GUI重新启动系统?

C ++加载共享库并在Linux平台上运行时提取类实现

在C ++中,是否有可能在执行时加载共享库? 我希望用户select在运行时加载哪个共享库,而不用重新编译整个程序。 dlopen()是C的一个解决scheme,但是我的程序编写的是C ++ / Qt,提取的符号是Qt风格的类,有没有更多的“c ++”方法来做到这一点。

在没有OpenGL的X11的QT上显示图像的最快方法是什么?

我需要在QT小部件中显示原始图像。 我在framebuffer上运行X11,所以OpenGL不可用。 图像和帧缓冲区都是相同的格式–RGB565,但如果需要的话,我可以将其更改为任何其他格式。 我不需要混合或缩放。 我只是需要显示像素。 我使用QPainter :: drawImage,但它将QImage转换为QPixmap,这种转换似乎是非常缓慢的。 也是Xrender的支持,我认为不需要额外的开销来支持Xrender中的混合,而我并不需要它 有没有更好的办法? 如果在QT中不可用,我可以使用Xlib或任何其他库或协议。 我可以修改驱动程序,X服务器或其他任何东西。

使用QSocketNotifier在字符设备上进行select。

我写了一个char设备驱动程序,现在正在编写一个QT“包装器”,其中的一部分是在设备通过轮询机制可读时触发一个信号。 我曾试图做到: QFile file("/dev/testDriver"); if(file.open(QFile::ReadOnly)) { QSocketNotifier sn(file.handle(), , QSocketNotifier::Read); sn.setEnabled(true); connect(&sn, SIGNAL(activated(int)), &this, SLOT(readyRead())); } 但readyRead从来没有被调用,我的驱动程序从来没有报告过其调查方法调用。 我能够得到下面的代码工作,所以我知道我的驱动程序正在工作 QFile file("/dev/testDriver"); if(file.open(QFile::ReadOnly)) { struct pollfd fd; fd.fd = file.handle(); fd.events = POLLIN; struct pollfd fds[] = {fd}; int ready; qDebug() << "Started poll"; ready = poll(fds, 1, -1); qDebug() << "Poll returned: " << ready; QTextStream […]

从Qt4运行Linux命令

我如何在Qt4的Linux下运行命令行程序? 当然,我想以某种方式获得输出,我可以使用。 我会用它ls | grep一个ls | grep ls | grep ,但很好知道任何未来的问题。