xwindows里怎么向一个窗口发出event

Anstinus 2005-01-05 11:08:40
就是类似于window中的SendMessage这样的函数,在xwindows下有没有对应的
另外,关于xwindows开发方面的资料在哪里找啊,网上好像都只有一些零散的文章
...全文
216 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
seayea 2005-01-12
  • 打赏
  • 举报
回复
补充一句,VS开发最好的资料莫过于MSDN;对于Qt,最好的开发资料应该是assistant和man page吧。
不过中文的讲Qt开发的书太少了。仅有的几本感觉也比较浅~ 网上看到一本《24小时学通Qt》,
评论说都不错。名字是俗了点。不过居然绝版了,当当和china_pub都买不到,书店更没有。很是令人郁闷。
seayea 2005-01-12
  • 打赏
  • 举报
回复
KDE——X Window的一种,就是基于Qt库写出来的。所以Qt库就是你所指的X Window的基础类库(KDE的库应该是再封装了Qt库的吧?)。Qt库有你所指的消息映射功能。
在MFC里头,基础类对象有一些消息处理响应特定的事件——使用postMessage和sendMessage也可以人工触发。
在Qt里头,“基础类”对象有一些“槽”处理特定的信号——也可以使用emit人工触发。任何类(只要包含Q_OBJECT)都会满足信号-槽机制。可以将普通函数定义为信号,或者槽。槽还可以作为信号再触发另外的槽。当然,类似鼠标点击之类的事件全都由类事先定义成为了相应的信号了。

感觉Qt的信号槽机制和MFC的消息映射机制有很多类似的地方,但是Qt更灵活方便。当然,如果读Qt开发的官方文档《C++ GUI programming with Qt3》;你就可以知道Qt的开发者原来就是两个VC的程序员。因此很多MFC的类,将开头的C换成Q,其用法基本上都差不多。比如MFC里有CString、CMessageBox;Qt下面就有QString、QMessageBox。

Qt开发者的初衷就是要写一个真正跨平台的类库。他们做到了,Qt不仅支持Unix/Linux/Mac/Windows,甚至连ucLinux都支持——csdn上搜索的一个文档,作者称QTe甚至是Qt的母集。MFC的功能有多大我们知道,因此Qt的功能有多大我们就不难想象了。

Qt从95年开始真正意义上被人使用,已经得到了巨大的发展。KDE的成功,成就了Qt;而目前X Window
的不足,以及跨平台软件的空白,将会成就更多的人。
好像Java也是跨平台的吧,没接触过,不是狠清楚。然而Qt的编译是兼容VC、C++ Builder、G++的,应该比起JBuilder还是要方便一点吧?

//学习Qt也没有多久,以上观点可能存在不少错误或者片面的地方。欢迎回帖指正。
Anstinus 2005-01-12
  • 打赏
  • 举报
回复
谢谢楼上的,不过我不是指QT
QT已经是很高层的类库了
我是指基本的xwindow函数
已经猜到了……XSendEvent,以前忘记加个X,没找到
Anstinus 2005-01-10
  • 打赏
  • 举报
回复
ding一下
Anstinus 2005-01-06
  • 打赏
  • 举报
回复
程序很简单,不想再把GTK,QT之类的大家伙加进去
难道xwindow基础库会没有提供这种的功能?
msenb 2005-01-05
  • 打赏
  • 举报
回复
同样关注, 寻找志同道合的人一起学习Xwindow ,qq: 9117569 email :li_gh@mail.china.com
coolvc2002 2005-01-05
  • 打赏
  • 举报
回复
linux下开发一般用qt或者gtk(包括gtk+,gtk--或者叫gtkmm)库,一般都用c/c++语言
qt库在linux下的消息是通过:信号槽机制来处理的,gtkmm比较晚才出,对消息的封装比较好,具体可以参考相关文章,qt库的消息通知如下代码:

//用qt库的例子

#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>


int main( int argc, char **argv )
{
QApplication a( argc, argv );

QPushButton quit( "Quit", 0 );
quit.resize( 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );

QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

a.setMainWidget( &quit );
quit.show();
return a.exec();
}


//QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
//这里quit的clicked()信号和a的quit()槽连接起来了,所以当这个按钮被按下的时候,
//这个程序就退出了。

-----------------------------------------------------------------------------
有空交流了~_~ qq:1040745
autoegg 2005-01-05
  • 打赏
  • 举报
回复
在利用QT Designer设计界面时候可以使用QT库中的slot函数传递。
tb01412 2005-01-05
  • 打赏
  • 举报
回复
你可以在www.gtk.org/www.gnome.org去下载源码,在源里有相应的很多实例。
我可以推荐一种方法:就是用LINUX下C开发的信号函数支持你自定义消息。
Anstinus 2005-01-05
  • 打赏
  • 举报
回复
这是都没有人做过xwindows的程序吗?

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧