小编nom*_*cME的帖子

在简单的gtk键按事件示例中,GDK_SHIFT_MASK似乎被忽略

有人可以编译并执行我在下面提供的小样本代码吗?如果shift键修饰符适合您,请告诉我.此示例假设演示gtk中的按键功能.它适用于简单的按键操作,甚至可以使用控制键修改器,但它不适用于Shift键修改器.

/*
 * 
 * compile command:
 * 
 * gcc keypress3.c -o keypress3  `pkg-config --libs --cflags gtk+-2.0`
 * 
 */

#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>

gboolean
on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data);

int main (int argc, char *argv[])
{
  GtkWidget *window;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
  g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (on_key_press), NULL);

  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}

gboolean
on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
  switch (event->keyval)
  {
    case …
Run Code Online (Sandbox Code Playgroud)

c gtk2

12
推荐指数
2
解决办法
2万
查看次数

gcc调试,分段错误(核心转储)但没有核心

它曾经是我Segmentation Fault没有核心,然后我将-ggdb添加到编译命令并在执行gcc之前在bash中执行此命令:

ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

一段时间都很好(我有一个核心),但现在我得到Segmentation Fault (core dumped)了gcc命令发出的目录中没有核心?可能会去别的地方吗?我还能尝试什么?

一点额外的信息:

  1. 操作系统:Gentoo Linux
  2. 在运行的内核中启用了启用ELF核心转储.
  3. 该应用程序是一个用gtk +编写的文本编辑器

答: 我发现了两种方式:

  1. find / -name "core" -ls
  2. 至于torek建议:

    $ strace ./executable> output.txt 2>&1

    $ grep chdir output.txt

c debugging gcc

7
推荐指数
1
解决办法
2万
查看次数

gtk +隐藏菜单栏禁用所有键盘快捷键

我想在我的gtk +文本编辑器中隐藏菜单栏.认为这只是一个简单的问题gtk_widget_hide(menubar),但当我这样做时,我松开了所有键盘快捷键.你如何隐藏菜单栏并保持加速器功能?

c gtk

6
推荐指数
1
解决办法
545
查看次数

imaplib/gmail如何在不标记读取的同时下载完整的消息(所有部分)

我无意中将此收件箱中的所有邮件标记为使用此python语句读取:

status, data = conn.uid('fetch', fetch_uids, '(RFC822)')
Run Code Online (Sandbox Code Playgroud)

但我能够通过以下一组陈述来浏览消息的所有部分:

email_message = email.message_from_string(data[0][1])
for part in email_message.walk():
  print '\n'
  print 'Content-Type:',part.get_content_type()
  print 'Main Content:',part.get_content_maintype()
  print 'Sub Content:',part.get_content_subtype()
Run Code Online (Sandbox Code Playgroud)

输出:

Content-Type: multipart/mixed
Main Content: multipart
Sub Content: mixed


Content-Type: multipart/alternative
Main Content: multipart
Sub Content: alternative


Content-Type: text/plain
Main Content: text
Sub Content: plain


Content-Type: text/html
Main Content: text
Sub Content: html
Run Code Online (Sandbox Code Playgroud)

我发现如果我使用这个陈述:

status, data = conn.uid('fetch', fetch_uids, '(RFC822.HEADER BODY.PEEK[1])')
Run Code Online (Sandbox Code Playgroud)

我不会将所有消息都标记为已读.但是,我也不会得到消息的所有部分:

Content-Type: multipart/mixed
Main Content: multipart
Sub Content: mixed
Run Code Online (Sandbox Code Playgroud)

我试着在这里阅读imaplib的手册,但没有提到"peek"这个词.我的问题是,如何在不将我的消息标记为已读的情况下获取消息的所有部分?谢谢.

python gmail imaplib

5
推荐指数
1
解决办法
3305
查看次数

python&smtplib:是否可以使用oauth2通过gmail发送邮件?

所以我可以使用smtplib登录并通过gmail发送邮件(使用下面的脚本),但我只是想知道是否使用oauth2是一个像imaplib一样的选项?我没有在smtplib文档页面上看到有关oauth的任何内容,我没有发现任何谷歌搜索.谢谢.

#! /usr/bin/python

import smtplib

to = 'myemailaddress'
gmail_user = 'myemailaddress'
gmail_pwd = 'passwd'
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_pwd)
header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'
print header
msg = header + '\n this is test msg from me \n\n'
smtpserver.sendmail(gmail_user, to, msg)
print 'done!'
smtpserver.close();
Run Code Online (Sandbox Code Playgroud)

编辑:

感谢samy.vilar在他的回答中提供了非常详细的解释.但是,我有点麻烦.这是我的脚本:

#! /usr/bin/python

import oauth2 as oauth
import oauth2.clients.smtp as smtplib

consumer = oauth.Consumer('anonymous', 'anonymous')
token = oauth.Token('1/MI6B2DqJP4FEkDRLUKrD5l46sQ0758-2ucEKBY-DeB0', 'NysqNqVTulFsdHpSRrPP56sF')

url …
Run Code Online (Sandbox Code Playgroud)

python oauth smtplib oauth-2.0

5
推荐指数
1
解决办法
7324
查看次数

使用字符串格式运算符替换C++字符串

来自python,我对C++有些新意.我真正想念的一个功能是字符串格式操作符.我已经看到很多可以在printf()函数中使用的例子,但是,有时候只是在字符串变量中替换占位符是很方便的.以下是使用mysqldb模块的python示例:

...
stmt = 'INSERT INTO %s(pid, starttime) VALUES("%s","%s")' % ('pids', int(p0.pid), episode[0][1])
cursor.execute(stmt)
Run Code Online (Sandbox Code Playgroud)

你能用C++做类似的事吗?我没有找到任何谷歌搜索的例子.

c++

3
推荐指数
2
解决办法
5280
查看次数

标签 统计

c ×3

python ×2

c++ ×1

debugging ×1

gcc ×1

gmail ×1

gtk ×1

gtk2 ×1

imaplib ×1

oauth ×1

oauth-2.0 ×1

smtplib ×1