通过 systemd service 控制 x11vnc

创建 /usr/lib/systemd/user/x11vnc.service 文件,写入以下内容:

1[Unit]
2Description=X11 VNC Server
3Requires=graphical-session.target
4After=graphical-session.target
5
6[Service]
查看全文

配置 SSH 免密登录及别名

免密登录

将 A 主机上的公钥(~/.ssh/id_rsa.pub)保存到 B 主机上的 ~/.ssh/authorized_keys 文件中,即可在 A 主机上免密登录 B 主机。

别名

1Host xxxx                                       # 主机别名
查看全文

配置命令提示符

通过环境变量 PS1 配置命令提示符,以 Ubuntu 24.04 的默认值为例:

1\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 

它分为两个部分。

查看全文

QAudioOutput 无法播放声音的问题

在 Windows 上使用 MSVC 编译的 Qt 程序,无法播放声音,QAudioDeviceInfo::availableDevices 返回空列表。

这是因为没能正确加载 Qt 插件。需要将 Qt\msvc2017_64\plugins 目录下的 audio 目录复制到可执行文件所在目录。

使用 windeployqt 部署后即可正确运行。

插件加载正确后,仍然发生无声音的问题,且 Qt 无任何报错。通过 QAudioDeviceInfo 查看支持的音频格式为:

查看全文

QCustomPlot 启用 OpenGL

编译时添加预编译宏 QCUSTOMPLOT_USE_OPENGL,用绘图的 QCustomPlot 子类调用 setOpenGl(true),并链接 OpenGL32

在 Windows 上使用 OpenGL32 存在很严重的性能问题,可以改为使用 freeglut

图像错乱问题

修改 QCPPaintBufferGlFbo::draw,添加上下文切换的代码。

查看全文

QObject 与 dllimport 的相关问题

Qt 的元对象编译(MOC)系统会根据标记了 Q_OBJECT 的类生成代码。由于类通常在头文件中,因此通常需要将头文件加入编译。

1add_library(lib SHARED lib.h lib.cpp)

在 Windows 上引用 lib 时,可能会遇到 staticMetaObject 符号未定义的错误。

查看全文
查看全文

Qt 布局不更新的问题

修改 QWidget

在 QWidget 已经加入布局之后,修改其大小,布局不会自动更新。需要调用 QWidget::updateGeometry 方法。

类似的,修改子布局时需要调用 QLayout::updateGeometry 方法。

修改 QSpacerItem

查看全文

Qt 日志模块

旧的方式:

1#include <QDebug>
2
3qDebug() << "hello world"

现在默认所有日志都不打印,因此这种方式看不到打印

查看全文

Qt 资源文件打开失败的问题

首先,Qt 的资源文件需要使用 Q_INIT_RESOURCE 宏进行初始化,参数为 qrc 文件的文件名,例如:

1Q_INIT_RESOURCE(theme);   // 初始化 theme.qrc
2Q_INIT_RESOURCE(icon);    // 初始化 icon.qrc

并且,这个宏必须在全局命名空间下调用,例如:

查看全文