我试图将链接附加到点击时会打开的按钮。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *strstrnc(const char *str1, const char *str2);
int main()
{
char buf1[80],buf2[80];
printf("Enter the first string to be compared: ");
gets(buf1);
printf("Enter the second string to be compared: ");
gets(buf2);
strstrnc(buf1,buf2);
return 0;
}
char *strstrnc(const char *buf1, const char *buf2)
{
char *p1, *ptr1, *p2, *ptr2, *loc;
int ctr;
ptr1 = malloc(80 * sizeof(char));
ptr2 = malloc(80 * sizeof(char));
p1 = ptr1;
p2 = ptr2;
for (ctr = 0; ctr < strlen(buf1);ctr++)
{
*p1++ = tolower(buf1[ctr]);
}
*p1 = '\0';
for (ctr = 0; ctr < strlen(buf2);ctr++)
{
*p2++ = tolower(buf2[ctr]);
}
*p2 = '\0';
printf("The new first string is %s.\n", ptr1);
printf("The new first string is %s.\n", ptr2);
loc = strstr(ptr1,ptr2);
if (loc == NULL)
{
printf("No match was found!\n");
}
else
{
printf("%s was found at position %ld.\n", ptr2, loc-ptr1);
}
return loc;
}
当我运行它时,它会在弹出框之前自动打开链接。如何编写它以便链接仅在按下按钮时运行? 我会创建另一个函数来打开链接,然后命令它在按下按钮时使用该功能吗?
答案 0 :(得分:0)
我将按钮命令包含在lambda
函数中。所以我的按钮看起来像这样:
`_Button = Button(self, text="Don't Click", command=lambda: webbrowser.open("http://example.com", new=2, autoraise="True"))`
答案 1 :(得分:0)
根据经验,按钮命令应该调用不接受任何参数的函数。通过这样做,编写命令,创建按钮和调试程序变得更加容易。
所以,在这种情况下,我会创建一个名为open_browser
或on_dont_click_button
的函数,或类似的东西:
def open_browser(self):
webbrowser.open("http://example.com", new=2, autoraise="True")
然后,按钮变得更容易实现:
_Button = Button(..., command=open_browser, ...)