我在网上找到了很多关于各种gtk使用的例子,但是大多数都包含了包含的头文件
#include <config.h>
Run Code Online (Sandbox Code Playgroud)
而且我不能在任何地方找到这个标题,所以我无法让这些例子起作用.
这是关于什么的?
在哪里我可以采取或我可以取代这个标题?
或者我可以不同地配置这些文件/项目以使其工作,因为其他gtk项目在我的comp上工作?
目前我尝试编译socket示例testsocket.c并在编译期间得到错误未定义的引用'create_child_plug'.除了在这个标题中,我认为没有任何理由不起作用.
但无论如何我可能是错的.
我发现 GtkSpinButton 对于 GTK GUI 上的受控输入数字很有用。但是这里有一些 GTK 按钮的一些不错的功能,在许多情况下可能不需要。如果我们在 scrolledwindow 中有 GtkSpinButton,那么用户可能会意外更改值,或者 GtkSpinButton 可以从 scrolledwindow 获取滚动行为。
问题:这里有没有可能让 GtkScrollButton 对鼠标滚轮不敏感,就像 GtkEntry 一样。或者更好的是,可以在没有向上/向下按钮的情况下显示 GtkSpinButton。如果没有,如何将滚动信号从 GtkSpinButton 重定向到 scrolledwindow?
我试试这个:
SCROLL_numgreen (GtkObject *object, GdkEvent *event, gpointer user_data)
{
switch (((GdkEventScroll *)event)->direction)
{
case GDK_SCROLL_UP:
return TRUE;
break;
case GDK_SCROLL_DOWN:
return TRUE;
break;
... etc...
Run Code Online (Sandbox Code Playgroud)
但这只会“吃掉”来自 GtkSpinButton 的滚动信号并在适当的位置阻止 scrolledwindow。我最想要一些通用的解决方案,而无需干预每个 GtkSpinButton 的事件。
我必须在标签上设置.Font.Bold = True,它没有定义.Font属性,但是从表单继承Font(名称,大小,样式).为此,我从表单的设计器文件中删除了她的.Font属性.
现在我需要将此标签的文本设置为粗体,而不为此标签定义字体名称,大小等.
我尝试:
label6.Font.Bold = True
Run Code Online (Sandbox Code Playgroud)
但这不起作用(PropertyFont.Bold只读).
如果我为这个标签设置字体,如:
label6.Font = New Font(myfontname, 10, FontStyle.Bold, GraphicsUnit.Point)
Run Code Online (Sandbox Code Playgroud)
然后我得到粗体文本但标签然后不再继承表单的字体大小.
这里可以将表单的字体继承保留为标签,但在此标签上获得粗体文本吗?
我通过C使用ShellExecute,除了一个问题外似乎没问题.
ShellExecute(NULL, "print", "C:\\index.html", NULL, NULL, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)
有了这个我想得到打印对话框按OK确定开始打印,而不是MS Word打开文件C:\ index.html加载.
如何使用ShellExecute在html文件上获取打印功能?
如果需要注意,IE不是我的默认互联网浏览器.
我做了这样的功能,以字符串形式获取所需的时间信息.
string gettimeinfo()
{
tm * timeinfo;
time_t rawtime;
char timebuff[120] = {0};
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(timebuff, 120, "%d.%m.%Y. %H:%M:%S %x %W %I:%M %p %a %b %A %B %Z\n", timeinfo);
return string(timebuff);
}
Run Code Online (Sandbox Code Playgroud)
这编译没有错误,并按预期工作.
但是在代码调试时:块/ GCC程序在return语句处停止并出现调试警告:
In std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () ()
Run Code Online (Sandbox Code Playgroud)
会发生什么以及如何摆脱这个?
编辑:整个错误是:
In std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned int, std::allocator<char> const&) () ()
#1 0x004013fe in gettimeinfo () at C:\programi\[connectcpp\general.cpp:36
C:\programi\[connectcpp\general.cpp:36:785:beg:0x4013fe
At C:\programi\[connectcpp\general.cpp:36
In char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, …Run Code Online (Sandbox Code Playgroud) 我有复杂的功能来交换不同行中同名列的数据.我从第一个读取数据,将其存储在本地临时变量中,从第二行读取数据,如果满足某些条件(最小值/最大值),将其保存到第一行,然后将临时变量保存到第二行,这是一个缓慢且容易出错的操作.
所以我认为可能只有SQL可以实现相同的结果.
以下是示例数据:
CREATE TEMP TABLE tbl(
id int PRIMARY KEY,
doc_num integer,
doc_text text
);
INSERT INTO tbl VALUES
(1, 1, 'First column text1'),
(2, 2, 'First column text2'),
(4, 3, 'First column text3'),
(7, 4, 'First column text4');
Run Code Online (Sandbox Code Playgroud)
Piont只是在所需的方向上交换'doc_num'列数据,这可能是我对单独函数所做的向上或向下.
如果我能用英语写一个简单的查询,听起来像这样:
第一个查询:
SWAP DOC_NUM in row 2 with DOC_NUM in row 3 IF DOC_NUM in row 3 IS <= MAX(DOC_NUM);
Run Code Online (Sandbox Code Playgroud)
第二个查询:
SWAP DOC_NUM in row 3 with DOC_NUM in row 2 IF DOC_NUM in row 2 IS >= MIN(DOC_NUM); …Run Code Online (Sandbox Code Playgroud) 我在上一个问题中发布了一个代码示例,这是关键部分:
Try
first = _string.IndexOf(_firstchar) + 1
second = _string.IndexOf(_secondchar)
If first >= 1 And second >= 0 Then
retval = _string.Substring(first, second - first)
End If
Catch ex As Exception
End Try
Run Code Online (Sandbox Code Playgroud)
一位经验丰富的VB用户表示,Try/Catch的这种使用是"邪恶的".
为什么这样的用法是"邪恶的",当我们不想打扰错误时,什么是最小程度上让程序继续?
我有一个“DropDownList”模式的组合框,其中填充了 VB.NET 程序中的 12 个项目。
当我在装有 Windows 7 的机器上单击它时,所有 12 项都会显示。Windows 8 机器也是如此。
但在 Windows XP 机器上,相同的 ComboBox 在下拉列表中仅显示 8 个项目,并且需要滚动才能到达最后一个项目。
是否有可能在Windows XP系统中ComboBox的下拉列表中显示所有12个项目以及如何获得它?
需要帮助const char*从函数中获取数组,以便可以在main中打印元素.
主要:
const char* values[3];
strings_to_array();
printf("%s\n", values[1]);
printf("%s\n", values[2]);
Run Code Online (Sandbox Code Playgroud)
功能:
const char* strings_to_array()
{
char one_str[16];
char two_str[16];
char three_str[16];
strcpy(one_str, "one");
strcpy(two_str, "two");
strcpy(three_str, "three");
const char* values[] = {one_str, two_str, three_str};
return values;
}
Run Code Online (Sandbox Code Playgroud)
这里有什么不对,以及如何获得主要值?
我正在努力获取这两个查询:
SELECT min(to_date(nullif(mydatetext,''), 'DD.MM.YYYY')) AS dmin,
max(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY')) AS dmax
FROM mytable
Run Code Online (Sandbox Code Playgroud)
和
SELECT count(*)
FROM mytable
WHERE
to_date(nullif(mydatetxt,'')) 'ERROR HERE
BETWEEN
max(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY'))
AND
min(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY'))
Run Code Online (Sandbox Code Playgroud)
我可以将结果读为最小日期,最大日期,最小和最大日期之间(包括最小和最大日期)的日期计数。但是这里有几个问题。
第二个查询无法按预期运行或根本无法运行,因此必须进行改进。如果可以在单个查询(?)中编写这两个查询,我可以将第一部分中的dmin和dmax变量用作第二部分中的变量吗?像这样:
SELECT count(*)
FROM mytable
WHERE
to_date(nullif(mydatetxt,'')) 'ERROR HERE
BETWEEN
dmin
AND
dmax
Run Code Online (Sandbox Code Playgroud)
最后请帮助解决这种情况。
可行的代码:
Using cmd As New NpgsqlCommand("SELECT my_id, mydate FROM " & mytable, conn)
Using dr As NpgsqlDataReader = cmd.ExecuteReader()
While dr.Read()
mydate = CStr(dr(1))
If IsDate(mydate) Then
Dim dat As Date = CDate(mydate.Substring(6, …Run Code Online (Sandbox Code Playgroud)