![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
windows
talkingmute
这个作者很懒,什么都没留下…
展开
-
VC中GDI绘图技术基础知识:hdc设备环境句柄,坐标系
VC中GDI绘图技术:》》通过HDC设备环境句柄绘图有三种方式:标准客户区绘图,临时客户区绘图,非客户区绘图1-标准客户区绘图,是在WM_PAINT消息回调时执行,调用BeginPaint函数,EndPaint函数。2-临时客户区绘图,是在任何消息回调时都可以执行,调用GetDc获取临时客户区句柄进行绘图,最后调用ReleaseDc释放。3-非客户区绘图,是在WM_NCPAINT消息回调时执行,针对一些窗口标题和边框的绘制,是调用GetWindowDc获取句柄进行绘图,最后调用Release原创 2022-05-05 11:24:39 · 839 阅读 · 0 评论 -
qt5中信号和槽连接,对于多种参数重载的处理
//因为QSpinBox的valueChanged信号有重载,为避免二义性,需要通过声明函数指针方式,来进行信号和槽的连接。 void (QSpinBox::*p)(int)=&QSpinBox::valueChanged;//函数指针p前要加类名作用域符号 connect(ui->spinBox,p,ui->horizontalSlider,&QSlider::setValue); connect(ui->horizontal...原创 2021-09-12 18:37:54 · 359 阅读 · 0 评论 -
qt中自动补全qcompleter使用
可以在任何Qt的窗口小部件中使用QCompleter提供自动补全功能,如:QLineEdit和QComboBox。当用户开始输入一个字符,QCompleter根据单词列表提示完成单词,它需要传递一个QStringList来构造QCompleter。 QStringList list; //list内容根据需求自行添加 list << "andy" << "6789" <<"baby"; QCompleter *complet原创 2021-09-09 22:23:46 · 1817 阅读 · 0 评论 -
qt中模态对话框和非模态对话框
模态对话框是会阻塞程序窗口的用户操作,必须要关闭后才可以进行后续的执行。而非模态对话框则不会阻塞用户操作,更灵活些,只是要注意设置一个关闭时自动释放内存的属性。 QDialog dlg; dlg.setWindowTitle("模态对话框"); dlg.resize(400,400); dlg.exec(); QDialog *pdlg=new QDialog; pdlg->setWindowTitle("非模态对话框");原创 2021-09-09 16:54:44 · 319 阅读 · 0 评论 -
qt中自定义信号和槽函数,信号重载
关于自定义信号和槽函数,是qt中最常用的。信号就相当于函数声明,没有返回值,可以带参数,需要signals开头。在connect连接时,最好使用qt5函数指针的方法,在访问类中的成员函数时前面要加对应类的作用域:类名::头文件中:signals: void mysig(); void mysig(int ,QString);private slots: void myslot1(); void myslot2(int ,QString);源原创 2021-09-08 21:56:21 · 769 阅读 · 0 评论 -
qt中事件分发器event和事件过滤器eventFilter使用
在qt中窗口部件接收到主程序的消息映射后,会进入到事件分发器模块,就是event虚函数接口,我们可以在该接口里进行特定事件的自定义处理。而当窗口部件需要过滤某一事件时,可以使用事件过滤器模块,就是eventFilter虚函数接口。对于事件分发器使用,需要先在指定控件头文件里声明,这里是一个自定义控件mylabel:protected: bool event(QEvent *e);再在源文件中实现:bool mylabel::event(QEvent *e){原创 2021-09-08 13:13:34 · 1710 阅读 · 0 评论 -
关于qt不规则窗体的应用设置
qt中不规则窗体应用,大多是没有边框、背景透明的,而且是可以随着鼠标按下移动的 //去掉窗口边框 this->setWindowFlag(Qt::FramelessWindowHint); //设置背景透明 this->setAttribute(Qt::WA_TranslucentBackground); //this->setGeometry(0,0,200,200);//设置窗口位置和大小对于不规则窗口的移动,需要重载鼠标原创 2021-08-21 11:10:59 · 244 阅读 · 0 评论 -
再谈qt中的绘图设备QPixmap,QImage,QPicture
qt中的绘图操作,是通过QPainter这个绘图对象类,在绘图设备上进行。绘图设备除了QWidget窗体外,还有QPixmap,QImage,QPicture这三种: //QPixmap主要是用于显示,只能在主界面UI线程中使用,和具体平台有关。 //而QImage主要是用于网络传输,支持多线程,和平台无关。 QPixmap pix(200,200);//定义一个QPixmap绘图设备,相当于一张画布 pix.fill(Qt::green);//指定填充颜色原创 2021-08-19 19:56:23 · 963 阅读 · 0 评论 -
qt中QPainter绘图操作介绍
QPainter是qt中绘图操作要用的绘图类,相当于一个画家。而绘图设备类QPainterDevice是相当于要绘画的画板,要在哪里绘画。画笔类QPen就是手里拿的画笔,有什么颜色、像素大小等。画刷类QBrush就是在一个封闭区域要画什么用的。头文件中,需要先声明paintEvent函数,这是绘图操作都必须要重载的虚函数:protected: void paintEvent(QPaintEvent *);void smallwidget::paintEvent(QPaintEve原创 2021-08-17 14:05:17 · 1715 阅读 · 0 评论 -
qt中有关定时器的两种实现方式
关于定时器,qt中有两种实现方式:1-基于QObject的startTimer接口,int QObject::startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer),第一个参数是时间间隔(毫秒单位),该接口返回一个定时器的ID,后面关闭定时器或者定时器响应函数需要用到,记得保存该ID。在头文件中,需要重写timerEvent虚函数,当定时器事件发生时触发。protected: void timerEve原创 2021-08-16 21:35:55 · 444 阅读 · 0 评论 -
c++获取进程路径的几种方法(32位/64位程序的坑)
这两天在做一个网络程序时,遇到了通过进程pid获取进程路径的需求,之前是用CreateToolhelp32Snapshot获取指定pid的模块,然后通过Module32First获取到其中的路径信息。不过因为本身程序是32位的,在获取64位程序时,却返回了299错误。经过网上查询,找到了另外的方法:OpenProcess打开指定pid进程,获得其句柄,该进程要有PROCESS_QUERY_INFO...原创 2020-04-12 00:23:56 · 3073 阅读 · 1 评论 -
GetModuleHandle,GetModuleFileName函数区别和获取当前窗口标题和对应的进程路径
GetModuleHandle(lpModuleName),lpModuleName是模块的名称,可以是**.dll或者**.exe,如果没有扩展名,则默认为dll.如果模块名称通过路径来指定,则路径中必须使用"\",而不是"/".执行时,该函数通过名称来查看调用进程已映射的模块,返回符合的模块句柄。如果GetModuleHandle(NULL),则返回调用进程本身的模块句柄。成功,则...原创 2020-03-02 20:50:41 · 1290 阅读 · 0 评论