QT:常用函数详解(个人笔记)
PS:一下内容个人笔记,要求自己看懂,随笔,阅读体验会很差很差!
-
Qt setContentsMargins()函数
函数原型:void QLayout::setContentsMargins (int lef,int top,int right,int bottom)
参数顺序:左上右下
作用:设置左侧、顶部、右侧和底部边距,以便在布局周围使用 -
Qt 布局管理器
QHBoxLayout、QVBoxLayout、QGridLayout三种基本布局管理器,分别是 水平布局,垂直布局,网格布局。
-
水平布局
QHBoxLayout: 在水平的方向上排列控件 左右排列
常用代码(笔记形式):
QHBoxLayout* pLayout = new QHBoxLayout();//水平布局
QPushButton* p1 = new QPushButton("p1");
QPushButton* p2 = new QPushButton("p2");
//水平居左,垂直居上
pLayout->addWidget(p1,0,Qt::AlignLeft | Qt::AlignTop);
//居左,居下
pLayout->addWidget(p2,0,Qt::AlignLeft | Qt::AlignBottom);
//相当于有一个弹簧顶着 , 你窗口变宽 他的弹簧就会拉伸
addStretch();//添加一个可伸缩空间
addSpacing(int size);//添加一个固定size 大小的间距
setMargin(int);
//setMargin可以设置左、上、右、下的外边距,设置之后,他们的外边距是相同的
//与setMargin功能相同,但是可以将左、上、右、下的外边距设置为不同的值
setContentsMargins(int left, int top, int right, int bottom );
setContentsMargins(const QMargins &margins); 设置外边距
addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0)
//添加控件,默认的,我们添加控件至水平布局中,默认都是垂直方向居中对齐的。
setDirection(QBoxLayout::RightToLeft)//设置布局方向
pLayout->setDirection(QBoxLayout::RightToLeft);//自右向左
setStretchFactor(QWidget *w, int stretch);//设置控件、布局的拉伸系数
setStretchFactor(QLayout *l, int stretch
pLayout->setStretchFactor(p1,1);//设置p1的拉伸系数为1
pLayout->setStretchFactor(p2,2);//设置p1的拉伸系数为2
当窗口变大时 先优先拉伸系数 大的 然后拉伸系数小的 ,
所以,p1 和 p2 的宽度比例是 1:2
- 垂直布局
QVBoxLayout:在垂直的方向上排列控件 上下排列
QVBoxLayout* pLayout = new QVBoxLayout();//水平布局
其它的代码和水平布局是一个道理
- 对齐方式
Qt::Alignment 类型有以下取值:
1)Qt::AlignLeft::水平方向靠左。
2)Qt::AlignRight:水平方向靠右。
3)Qt::AlignHCenter:水平方向居中。
4)Qt::AlignJustify:水平方向调整间距两端对齐。
5)Qt::AlignTop:垂直方向靠上。
6)Qt::AlignButton:垂直方向靠下。
7)Qt::AlignVCenter:垂直方向居中。
8)Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter
// 水平对齐掩码0x0f,左对齐01,右对齐02,居中对齐04,两端对齐08
int layoutHAlign = this->alignment() & 0x0f;
if ((layoutHAlign != Qt::AlignLeft)) //判断方式
// 垂直对齐掩码0xf0,顶对齐20,底对齐40,居中对齐80
int layoutVAlign = this->alignment() & 0xf0;
if ((layoutVAlign != Qt::AlignTop) //判断方式
- 获取当前桌面的分辨率
QDesktopWidget *primaryScreen = QApplication::desktop();
int width = primaryScreen ->width(); //获取宽度
int height = primaryScreen ->height(); //获取高度
- Qtcreator中常用快捷键和小技巧
F1 查看帮助
F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)
Shift+F2 声明和定义之间切换
F4 头文件和源文件之间切换
Ctrl+/ 注释行,取消注释行
Ctrl+I 自动对齐
Alt+0 显示或者隐藏侧边条,编辑模式下起作用(有时写的函数太长,屏幕不够大,就用这个)
- 常用命令笔记(个人用,要求自己看懂的)
sudo dpkg --no-debsig -i ____ .deb
apt source ukui-menu
sudo apt install dekg-dev
sudo dekp -l 查看已经安装的 / -r 软件名 卸载
dkpg -l | grep switch
sudo apt install evemu-tools
sudo evemu-record
gsettings get org.gname.desktop.wm.keybindings close
sudo apt install d-feet
下载qt sudo apt install cmake qt5-default qtcreator
apt-cache rdepends ukui-window-switch
dconf-editor
sudo apt install xbindkeys xvkbd
xrandr -s 1680x1050
- 日志调试
#include <syslog.h>
syslog(LOG_DEBUG," [%s] Start", FUNCTION); 输出函数名 输出结果如 [eventFilter] Start
syslog 第二个参数是输出格式,第三个是输出的变量
debuild 后安装
reboot
tail -f /var/log/syslog
使用刚刚装好的包 使用后查看输出的日志
输出的日志就是刚刚的操作对应的日志
内容来自转载和自己笔记;
转载来自:https://blog.csdn.net/weixin_42837024
10.增加xml文件 (2020/11/19)
首先 .pro 文件需要加 xml
QT += core gui dbus xml
然后,.pro文件继续加入,主要看最后三行的修改;
这样 deb包安装的时候。就会把xml文件自动安装到对应位置 path
结构:放在data目录下,文件夹去操作。复制,粘贴,然后修改内容和名字
随后就可以继续在代码中使用了
11、gsettings监听xml文件的key
#define SETTINGS_MONITOR_TABLET_MODE "name"//xml文件名字
#define MONITOR_TABLET_MODE "key"//key 的名字
//函数中使用
QByteArray id(SETTINGS_MONITOR_TABLET_MODE);
QGSettings *tablet = new QGSettings(id);
if (tablet->keys().contains("modemonitor")) {
bool Setting = tablet->get(MONITOR_TABLET_MODE).toBool();//bool int 等类型
if (Setting == true) {
//使用,然后判断
}
}