在QT编辑UI界面Menu时,linu屏幕的录制与截图

本文介绍了在使用QT编辑UI界面时遇到的截图难题及其解决办法,包括使用键盘快捷键、screenshot工具及针对特定场景的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个小问题:在QT里面编辑UI界面的时候,如果想一步一步记录下自己制作的过程,在申请软件著作权的时候加进去,就要截图

截图

1、可以用键盘的快捷键截图:

  1、按下Print Screen键,将会截取全屏幕画面。
  2、抓取当前活动窗口
  Print Screen进行屏幕抓图时,同时按下Alt键,就会只抓取当前活动窗口
  3、自选截图区域
	Print Screen+Shift 然后可以自选截图的区域

2、也可以用screenshot 截图工具

ubuntu 10.04中在applications 可以找到screenshot 截图工具

ubuntu 10.10之后,我在ubuntu 14.04,可以在终端输入gnome-screenshot -h 来查看该命令的用法,进行截图:

 

  为截图截取某个区域的设置一个快捷键:

  ubuntu 14.04中设置快捷键

  若要按下Ctrl+Alt +A 来实现区域截图依次打开 系统设置 》 键盘 》 快捷键 》 自定义快捷键 》 +,在【name】输入 screenshot , 【command】输入 gnome-screenshot -a ,点击【apply】确定后,再点击disable 禁用,接着就同时按下 Ctrl+Alt +A 就可以成功设置截图快捷键了。


这是截图的,但如果你在QT 的UI 里设置Menu的名称,或修改时,此刻,若想记录,进行截图,你会发现键盘快捷键和大多数截图的指令都用不了,问题来了,这时要如何才能截图?

目前的方法:

1、用gtk-recordmydesktop 屏幕截图软件,最大的好处是方便简洁,记得只有178KB

Linux屏幕录像软件不多,而且有一些录制软件需要依赖各种库,安装起来并不容易,而gtk-recordmydesktop 直接用命令行即可

  • 首先打开终端,在终端中输入这样的命令行:sudo apt-get install  recordmydesktop gtk-recordmydesktop

  • 接着,终端会提示你输入密码

  • 输入密码之后按回车键,系统会自动下载和安装软件,傻瓜式安装

  • 然后,在终端输入:gtk-recordmydesktop,enjoy  it!


接下来,只要录制屏幕,然后把视频进行截图即可

2、在写的过程中,又发现一个方法

在终端输入指令:hyb@hyb-IdeaPad-Z485:~$ gnome-screenshot -d 5

等延迟5秒之后再进行截图,在这5S期间,可以打开UI界面编辑Menu菜单,这样也可以解决问题

如下图中,子不语下面显示的


### Linux Qt 控制 LED 灯流程 在Linux环境下使用Qt框架来控制LED灯涉及多个步骤,从初始化环境到最终实现对硬件的操作。以下是详细的流程描述: #### 1. 开发环境准备 确保安装了必要的工具链和库文件,包括但不限于Qt Creator、GCC编译器以及针对目标平台的交叉编译工具。 #### 2. 创建项目结构 创建一个新的Qt Widgets Application工程,在`mainwindow.h`定义UI组件及相关方法[^1]: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QPushButton> #include <QFile> class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: QPushButton *pushButton; QFile file; private slots: void pushButtonClicked(); private: void setLEDState(); bool getLEDState(); }; #endif // MAINWINDOW_H ``` #### 3. 编写业务逻辑代码 实现在点击按钮改变LED状态的功能,通过操作GPIO接口完成实际物理层面上的变化处理[^2]: ```cpp // mainwindow.cpp 中的部分实现 void MainWindow::setLEDState() { if (getLEDState()) { // 如果当前LED处于开启状态,则关闭它 file.write("/sys/class/gpio/export", "0"); } else { // 否则打开LED file.write("/sys/class/gpio/unexport", "1"); } } bool MainWindow::getLEDState() const{ QString content; if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return false; QTextStream in(&file); while(!in.atEnd()){ content += in.readLine(); } file.close(); return content.toInt()>0?true:false; } ``` #### 4. 构建并部署应用程序 对于桌面操作系统如Ubuntu来说,可以直接构建;而对于特定架构的目标板(比如ARM),需要先进行交叉编译再传输至开发板执行。 #### 5. 运行测试 将编译好的二进制文件上传到嵌入式设备上,并验证其能否正常工作。注意不同型号的单片机或SoC可能有不同的引脚配置方式,需参照具体文档调整相应参数设置[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值