精华内容
下载资源
问答
  • I am trying to get a java gui to open a web page. So the gui runs some code that does things and then produces a html file.I then want this file to open in a web browser (preferrably Firefox) as soon ...

    I am trying to get a java gui to open a web page. So the gui runs some code that does things and then produces a html file.

    I then want this file to open in a web browser (preferrably Firefox) as soon as it is created.

    How would I go about doing that?

    解决方案

    If you're using Java 6 or above, see the Desktop API, in particular browse. Use it like this (not tested):

    // using this in real life, you'd probably want to check that the desktop

    // methods are supported using isDesktopSupported()...

    String htmlFilePath = "path/to/html/file.html"; // path to your new file

    File htmlFile = new File(htmlFilePath);

    // open the default web browser for the HTML page

    Desktop.getDesktop().browse(htmlFile.toURI());

    // if a web browser is the default HTML handler, this might work too

    Desktop.getDesktop().open(htmlFile);

    展开全文
  • /*** If possible this method opens the default browser to the specified web page.* If not it notifies the user of webpage's url so that they may access it* manually.** @param url* - this ca...

    /**

    * If possible this method opens the default browser to the specified web page.

    * If not it notifies the user of webpage's url so that they may access it

    * manually.

    *

    * @param url

    * - this can be in the form of a web address (http://www.mywebsite.com)

    * or a path to an html file or SVG image file e.t.c

    */

    public static void openInBrowser(String url)

    {

    try

    {

    URI uri = new URL(url).toURI();

    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;

    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {

    desktop.browse(uri);

    } else {

    throw new Exception("Desktop not supported, cannout open browser automatically");

    }

    }

    catch (Exception e)

    {

    /*

    * I know this is bad practice

    * but we don't want to do anything clever for a specific error

    */

    e.printStackTrace();

    // Copy URL to the clipboard so the user can paste it into their browser

    StringSelection stringSelection = new StringSelection(url);

    Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();

    clpbrd.setContents(stringSelection, null);

    // Notify the user of the failure

    WindowTools.informationWindow("This program just tried to open a webpage." + "\n"

    + "The URL has been copied to your clipboard, simply paste into your browser to access.",

    "Webpage: " + url);

    }

    }

    展开全文
  • python GUI实例学习

    2021-01-28 16:47:29
    在学习本篇之前,如果你对Python下进行GUI编程基础内容还有不明白,推荐一篇相关文章:简单介绍利用TK在Python下进行GUI编程的教程写一个简单的界面很容易,即使是什么都不了解的情况下,这个文本转载了最简单的界面...

    在学习本篇之前,如果你对Python下进行GUI编程基础内容还有不明白,推荐一篇相关文章:简单介绍利用TK在Python下进行GUI编程的教程

    写一个简单的界面很容易,即使是什么都不了解的情况下,这个文本转载了最简单的界面编写,下个文本介绍了TK的简单但具体的应用

    在python中创建一个窗口,然后显示出来。

    from Tkinter import *

    root = Tk()

    root.mainloop()

    就3行就能够把主窗口显示出来了。root是一个变量名称,其代表了这个主窗口。以后创建控件的时候指定控件创建在什么窗口之中,就要用这个root来表示了。而Tk()是一个Tkinter库之中的函数(其实是类的构造函数,构造了一个对象)。而mainloop则是主窗口的成员函数,也就是表示让这个root工作起来,开始接收鼠标的和键盘的操作。你现在就能够通过鼠标缩放以及关闭这个窗口了。注意到窗口的标题是tk,我们可以进行一些修改

    root= Tk(className='bitunion')

    然后窗口的标题就变成了bitunion了。下面要作的是把这个窗口的内容填充一下,让其有一些东西。先加入一个标签,所谓标签就是一行字。

    from Tkinter import *

    root = Tk(className='bitunion')

    label = Label(root)

    label['text'] = 'be on your own'

    label.pack()

    root.mainloop()

    我们很惊讶的发现窗口变小了,但是其中多了一行字。变小了是因为窗口中已经放了东西了,python的Tkinter非常智能,能够根据内容自动缩放,而不用和传统的windows程序一样,手工的指定绝对坐标了。对于label,它还是一个变量而已。不过这个变量代表了一个标签,也就是那一行字。而这个label的创建是用Label,而Label的参数是root表明了这个控件是root主窗口的成员控件,或者说是子窗口。label['text']表示设置这个标签的text属性为'be on your own',也就是文字内容了。label.pack和root.mainloop一样费解,但是内涵一样深刻。你现在可以简单理解为把label显示出来的功能,因为你把pack去掉,那你就看不到东西了。其实pack是和控件的布局排版有关西的。

    再添加一个按钮就能够有更加丰富的内容了,方法是很类似的。看着吧:

    from Tkinter import *

    root = Tk(className='bitunion')

    label = Label(root)

    label['text'] = 'be on your own'

    label.pack()

    button = Button(root)

    button['text'] = 'change it'

    button.pack()

    root.mainloop()

    只不过把button替换了label而Button替换了Label。注意一下Button和Label这些都是Tkinter这些库提供的,而button和Button这样大小写之间的差别仅仅是巧合,你能够随便的给变量取名字,但是Button和Label这些则是需要记住的东西,写代码的时候要经常用到的名字。但是点击按钮你会比较失望,因为并没有什么反应。不过也是当然的事情,你并没有告诉计算机对于这样一个按钮的点击操作需要作出一个什么样的反应来反馈给用户。而这个指定作出什么反应的工作只需要一个行,但是作出具体什么样反应的描述则需要新建一个函数来进行处理。

    from Tkinter import *

    def on_click():

    label['text'] = 'no way out'

    root = Tk(className='bitunion')

    label = Label(root)

    label['text'] = 'be on your own'

    label.pack()

    button = Button(root)

    button['text'] = 'change it'

    button['command'] = on_click

    button.pack()

    root.mainloop()

    button['command'] = on_click表示对于button(按钮)的点击属性用on_click这个函数来处理。而on_click函数也很简洁,只是把label的文本重新设置一下。这个完成了一个事件消息的处理,如果用C来写,需要比这个长更加不好懂的写法。另外你是否会对on_click中出现label这个变量比较奇怪呢?明明在on_click前面没有定义label这个变量啊。如果我在C中这么写程序,编译器一定会告诉我出错的。而python是怎么知道label这个变量存在,然后没有报错的呢?其实python在你写的时候根本就不用知道其是否存在,只是要在运行的时候找得到label就可以了。而运行的前后关系,是通过时间来关联的而不是代码上前后行的关系。这里由于label = Label(root)先于on_click执行,所以当on_click执行的时候,label就是一个已经定义的变量。如果没有定义呢?那就报告出错喽。

    最后一个例子:

    from Tkinter import *

    def on_click():

    label['text'] = text.get()

    root = Tk(className='bitunion')

    label = Label(root)

    label['text'] = 'be on your own'

    label.pack()

    text = StringVar()

    text.set('change to what?')

    entry = Entry(root)

    entry['textvariable'] = text

    entry.pack()

    button = Button(root)

    button['text'] = 'change it'

    button['command'] = on_click

    button.pack()

    root.mainloop()

    这个就比较复杂了。里面有一个StringVar。这个代表一个字符串,但是跟一般字符串不一样。一般的这样'dfsdf'的字符串是不可变的,你只能把变量指定为不同的字符串,但是字符串本身的内容是不可改变的。而StringVar则是可变的字符串。所以了set和get来设置和取得其内容。主要是entry(单行输入框)要求一个这样的属性来设置和接收其输入框的内容。

    用Tkinter实现一个简单的GUI程序,单击click按钮时会在终端打印出'hello world':

    __author__ = 'fyby'

    from Tkinter import *   #引入Tkinter工具包

    def hello():

    print('hello world!')

    win = Tk()  #定义一个窗体

    win.title('Hello World')    #定义窗体标题

    win.geometry('400x200')     #定义窗体的大小,是400X200像素

    btn = Button(win, text='Click me', command=hello)

    #注意这个地方,不要写成hello(),如果是hello()的话,

    #会在mainloop中调用hello函数,

    # 而不是单击button按钮时出发事件

    btn.pack(expand=YES, fill=BOTH) #将按钮pack,充满整个窗体(只有pack的组件实例才能显示)

    mainloop() #进入主循环,程序运行

    1deacfdb84240f8bf27ca98b743b91cd.png

    当我们写一个较大的程序时,最好将代码分成一个或者是几个类,再看一下Hello World例子

    #-*- encoding=UTF-8 -*-

    __author__ = 'fyby'

    from Tkinter import *

    class App:

    def __init__(self, master):

    #构造函数里传入一个父组件(master),创建一个Frame组件并显示

    frame = Frame(master)

    frame.pack()

    #创建两个button,并作为frame的一部分

    self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)

    self.button.pack(side=LEFT) #此处side为LEFT表示将其放置 到frame剩余空间的最左方

    self.hi_there = Button(frame, text="Hello", command=self.say_hi)

    self.hi_there.pack(side=LEFT)

    def say_hi(self):

    print "hi there, this is a class example!"

    win = Tk()

    app = App(win)

    win.mainloop()

    ec7ea6cb00224a818ad4dba960598e6e.png

    看完了上面两个无聊的Hello World例子,再来看一个稍微Perfect点的东西吧。Menu组件,自己画一个像样点的程序外壳。

    #-*-encoding=UTF-8-*-

    __author__='fyby'

    fromTkinterimport*

    classApp:

    def__init__(self,master):

    #构造函数里传入一个父组件(master),创建一个Frame组件并显示

    frame=Frame(master)

    frame.pack()

    #创建两个button,并作为frame的一部分

    self.button=Button(frame,text="QUIT",fg="red",command=frame.quit)

    self.button.pack(side=LEFT)#此处side为LEFT表示将其放置到frame剩余空间的最左方

    self.hi_there=Button(frame,text="Hello",command=self.say_hi)

    self.hi_there.pack(side=LEFT)

    defsay_hi(self):

    print"hithere,thisisaclassexample!"

    win=Tk()

    app=App(win)

    win.mainloop()

    616956be6f8599d60add1ccc805de8ea.png

    这个程序还是有点无趣,因为我们只是创建了一个顶级的导航菜单,点击后只是在终端中输出hello而已,下面来创建一个下拉菜单,这样才像一个正儿八经的应用大笑在下面的这个例子中,会创建三个顶级菜单,每个顶级菜单中都有下拉菜单(用add_command方法创建,最后用add_cascade方法加入到上级菜单中去),为每个下拉选项都绑定一个hello函数,在终端中打印出hello.

    root.quit是退出这个Tk的实例。

    #-*- encoding=UTF-8 -*-

    __author__ = 'fyby'

    from Tkinter import *

    root = Tk()

    def hello():

    print('hello')

    def about():

    print('我是开发者')

    menubar = Menu(root)

    #创建下拉菜单File,然后将其加入到顶级的菜单栏中

    filemenu = Menu(menubar,tearoff=0)

    filemenu.add_command(label="Open", command=hello)

    filemenu.add_command(label="Save", command=hello)

    filemenu.add_separator()

    filemenu.add_command(label="Exit", command=root.quit)

    menubar.add_cascade(label="File", menu=filemenu)

    #创建另一个下拉菜单Edit

    editmenu = Menu(menubar, tearoff=0)

    editmenu.add_command(label="Cut", command=hello)

    editmenu.add_command(label="Copy", command=hello)

    editmenu.add_command(label="Paste", command=hello)

    menubar.add_cascade(label="Edit",menu=editmenu)

    #创建下拉菜单Help

    helpmenu = Menu(menubar, tearoff=0)

    helpmenu.add_command(label="About", command=about)

    menubar.add_cascade(label="Help", menu=helpmenu)

    #显示菜单

    root.config(menu=menubar)

    mainloop()

    f9022682e7460d2d800a2634397c77b4.png

    写了这一些,差不多对Tkinter有了一个大体的印象了。在Python中用Tkinter绘制GUI界面还是蛮简单的。再把上面的例子扩展一下,和Label标签结合,当单击about的时候,在窗体上打印About的内容,而不是在终端输出。将about函数稍微修改一下。单击about以后将会调用about函数渲染frame绘制一个标签并显示其内容。

    def about():

    w = Label(root,text="开发者感谢名单\nfuyunbiyi\nfyby尚未出现的女朋友\nhttp://www.programup.com网站")

    w.pack(side=TOP)

    22acd3209a5145a62229eccb15c70d69.png

    kinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

    目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

    标准属性:

    标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

    ec7c5a2c08daeeafdf289f744e60a049.png

    几何管理:

    Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置

    d0ddf7385b834108c09701fccf7e4723.png

    展开全文
  • 自打我有了一个写 Uncode IDE 的小目标之后,我开始寻找一些适用于 Rust 语言的 GUI 框架。对于未来而言,基于 Rust 语言写 GUI 提供了大量的优点。浏览器环境。在进...

    自打我有了一个写 Uncode IDE 的小目标之后,我开始寻找一些适用于 Rust 语言的 GUI 框架。对于未来而言,基于 Rust 语言写 GUI 提供了大量的优点。

    • 浏览器环境。在进程分离的架构下,意味着我们可以用 Rust 写 GUI 后端,用于提供语言服务等;Rust 写前端则可以编译为 WebAssembly,以更好的性能在浏览器上运行。

    • 本地运行。没啥说的,怎么地也不如再有的 GUI 框架做得好。

    • 移动设备上运行。就是想想,说不定还能实现。

    于是,在我这一个月的努力之下,我尝试了三个不同风格的 Rust GUI 框架:终于总算是勉强能跑起来了。顺便一提,这三个框架都不是稳定版本,功能都不够完善。

    唯一值得称道的一点是,我写这篇文章用的工具用的是其中的 Druid 框架写的 Print 编辑器吧。它可以稳定的运行着,虽然功能还不够完善,但是勉强可以用起来。

    而且,从输入的效果来看,输入的响应速度还是相当不错的 —— 毕竟在没有各种智能 + 智障提醒的情况下,它不会有多慢。

    混合框架 Tauri

    为了方便于开发,我开始我假设 Uncode 是运行在浏览器环境的,所以呢,我就找了 Electron 的替代器 Tauri。

    Tauri 走的是古老的混合应用框架 Cordova 的思路,通过调用系统默认的 WebView 来作为环境。想想,还是很美好的,所以我尝试了使用 Tauri 运行了第一个 hello, world。然后试着,加了几个功能,也是勉强能接受的,直到我需要一个多窗口的功能,发现没有。

    于是,我去 GitHub 上了解了一下情况,看了一眼 Todo:

    • Frameless Mode (coming soon)

    • Transparent Mode (coming soon)

    • Multiwindow Mode (coming soon)

    看了一眼时间,没错今年是 2021 了,这些个 Todo 这么多,我还怎么继续啊。

    小结,其实呢,如果你用过 Cordova 的话,那你就知道 Cordova 在跨平台上的诸多问题。不过,写写小工具还是相关不错的,hello,world 只需要 600 KB,体积少了 100M 还是很香的。

    跨 Web 与原生框架 Iced

    接着,我开始寻找了第二个 GUI 框架,我看到了一个更美好的框架 Iced:用 Iced 写的应用,除了可以在桌面上运行,还可以编译为 Web 应用在浏览器上跑。有没有很香??

    拿起 Iced 就开发干了:

    • Flexd 布局 + 1 分,

    • 独立的 Style 编写 + 1 分

    • ……

    如下是使用 Iced 编写的 Style,支持一定程度的自定义:

    mod style {
    ...
    impl container::StyleSheet for ProjectToolWindow {
      fn style(&self) -> container::Style {
        container::Style {
          backg round: Some(Background::Color([1.0, 1.0, 1.0].into())),
          text_color: Some(Color::BLACK),
          ..container::Style::default()
        }
       }
     }
    }
    

    那,我们来写个编辑器吧。咦,没有多行 text input。我思考了一下一个编辑器的工作量,我决定放弃这个框架。

    总结:API 非常友好,至少我是觉得不错滴,但是 widget 不全。

    桌面级 Druid

    我要醒醒醒醒,原生 GUI 开发和 Web UI 开发不一样,大部分组件库没那么全的。嗯,看来这样一来,我的目标就很清晰了:多窗口 + 多行文本。一波努力之下,我找到了 Druid。然后看了看作者的头像,似乎有点眼熟,点进去一眼,原来就是那个写 Xi Editor 的作者了。

    • 编辑器支持功能 GET。同时还有 xi-win 作为参考版本,widget 里还提供了多行文本的支持,也就是我现在在写本文的这个工具,用的就是多行文本。虽然,后期得自定义,但是至少得是 it works。

    • 内置多语言支持。

    • 官方提供了主题的 Demo。

    • 官方有一个参考应用:字体编辑器。

    排版方式上,同样是可以用 Flex,如下:

    fn make_ui() -> impl Widget<AppState> {
    Flex::column()
    .with_child(navigation_bar())
    .with_flex_child(center(), 1.0)
    .with_child(bottom_tool_window())
    .with_child(status_bar())
    .background(crate::theme::BACKGROUND_COLOR)
    }
    

    比较有意思的是,这个框架内置了大量的 GUI 范式,你得按它的模式来编写。

    总结:基本可用的 Rust GUI 库,文档还有待完善。

    展开全文
  • 为了方便此类信息的获取,我们可以搭建日志服务器,并实现webGUI显示以便更直观形象的观察收集它们。一、拓扑图二、实验环境1、主机A:操作系统:CentOS-6.5-x86_64ip地址:192.168.5.237启用程序:ryslog、php、...
  • Web应用GUI设计
  • ## 需求**nginx 可视化管理,例如**- 配置...目前方案直接套用github大神开发的nginx-guigithub地址:https://github.com/onlyGuo/nginx-gui这个东西真的要吹一波,太好用了而且源码公开,解决了我这种java出身的lin...
  • GUI自动化测试 GUI,全称:Graphical User Interface,中文含义:图形用户接口 一、自动化测试的定义 通过软件工具或者程序脚本来模拟用户的操作,操作的结果作为实际,与测试用例中的预期结果进行自动对比。 为...
  • 简介Babylon.GUI是一款可用于Web3D用户界面的UI组件库,使用Babylon.GUI可以使我们像在2D平面中布局UI那样在3D场景中放置按钮、文本标签和面板等各种控件,此外它还支持在WebVR中布局UI。2.最初的印象二、使用1.引入...
  • 通过webGUI展示日志信息(LogAnalyzer)1. 安装软件包,并查看php是否工作正常[root@linuxidc ~]# yum -y install httpd php php-mysql mysql-server rsyslog-mysql[root@linuxidc ~]# service httpd start[root@...
  • 我正在尝试获取Java GUI来打开网页。因此,gui运行一些执行操作的代码,然后生成一个html文件。然后,我希望此文件在创建后立即在网络浏览器(最好是Firefox)中打开。我将如何去做?参考方案如果您使用的是Java 6或更...
  • openwrt web gui Luci 调试

    2021-03-10 14:56:16
    修改完相应的文件,如.lua文件后。 做如果操作,即可使修改后的lua文件生效 rm -rf /tmp/luci-*
  • 英文 |https://betterprogramming.pub/7-must-try-gui-libraries-in-python-34c8f6266363翻译 | 小爱GUI或图...
  • GUI编程

    2021-05-20 03:54:54
    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或...
  • MATLAB GUI

    2021-05-08 04:04:26
    A custom app with a GUI in MATLAB. You can share your app with others to use in MATLAB on the desktop or in a web browser using MATLAB Online. Apps can also be packaged for installation into the ...
  • SAP GUI for HTML[WEBGUI]

    2021-06-16 13:26:35
    Dear All,We have implemented SAP GUI for HTML [WEBGUI] in ECC 6.0 System its working fine.However After entering user id password i am able to execute any SAP transactions but when i am logging off fr...
  • 大家好,在本文中,我们将为大家介绍如何为SQLMAP设置Web-GUI界面。这里的Web-GUI,是指借助于浏览器,通过HTTP/HTTPS服务为我们的工具提供的图形用户界面。在对含有MySQL安全漏洞的网站进行渗透测试的时候,我们...
  • 我在windows系统下使用的mysql客户端是mysql-front。...我到系统所ubuntu有一个ubuntu软件中心安装到 安装成功后启动到GUI画面在--应用程序--编程 (即可看到) 分享到: 2012-04-22 12:32 浏览 961 分类:数据库 评论
  • linux gui 服务器

    2021-05-10 10:01:24
    |--- WEB-INF 目录 -- java类、jar包、web配置文件存在这个目录下,外界无法直接访问,由web服务器负责调用. |--- classes 目录 -- java类 |--- lib 目录 -- java类运行所需要的jar包 |--- web.xml 文件 -- web应用...
  • Hi all i want to web based GUI Testing tool. I found dogtail is written using python. but i didnot get any good tutorial and examples to move further. Please Guide me weather dogtail is perfect or som...
  • Common Gui Tools 是用java编写,GUI界面的实用小工具集,1.02版有8个小工具:1,编码转换:Character Converter2,加密解密:Encrypt And Decrypt3,正则表达式验证:Regex Tester4,执行Script脚本:Run Script5,...
  • pythonGUI自动化:uiautomation的常见使用,,一、在web系统GU一、在web系统GUI自动化测试中,可以用uiautomation进行辅助二、程序窗口:WindowControl()按钮:ButtonControl()文件显示:TextControl()输入框:Edit...
  • GUI,是 Graphics User Interface(图形用户界面)的缩写。在 GUI 中,并不只是输入文本和返回文本,用户可以看到窗口、按钮、文本框等组件,还可以通过鼠标和键盘操作应用。GUI 是程序交互的一种不同的方式,使用 GUI...
  • mysql gui

    2021-01-19 05:00:32
    mySql GUI 设计工具mysql front :MySQL的GUI工具文章古镇月影2012-09-12518浏览量mysql的常用开发工具【建模、维护、监控】建模工具MySQL Workbenchhttp://dev.mysql.com/doc/index-gui.html操作维护工具Top 10 ...
  • Common Gui Tools 1.2 发布,Java GUI 实用小工具集发布于 2014-10-17 10:54:06 | 211 次阅读 | 评论: 0 | 来源: 网友投递Common Gui Tools是用java编写,GUI界面的实用小工具集,1.2版有16个小工具:欢迎您使用并...
  • LENGTH"))),--读取Post数据 ltn12.sink.file(io.stderr) ) --把web请求放于r中(包括环境变量,web请求,出错处理接口) local x = coroutine.create(luci.dispatcher.httpdispatch) --创建协进程x local ...
  • pythonGUI教程(一)

    2020-12-22 15:43:09
    0 .前言最近要忙毕设了,毕设要用到到python,所以不如借着这个机会写写自己在用python的一些功能吧,本文虽然顶着教程的名字,但其实更多的像是我...1 .GUI设计python常见的几个可以用于GUI设计的库函数:curses ...
  • Java – 做大型GUI项目

    2021-02-27 22:56:51
    直接解决我的问题....因为我来自web开发领域,我习惯于MVC框架,所以我在我的项目中有3个包模型,其中我保持与whit文件或db交互的类,视图我保留我的类用于Forms或GUI和Controller包我保留我的大多数逻辑.我被告...
  • 我想制作一个应用程序,...我所拥有的:与服务器应用程序的Web界面进行通信的几乎完成的类。GUI描述:对于某种版本0.1:用户名的文本字段,用于选择服务器的单选按钮和一个“执行”按钮。然后使用几个(4-12)操作按钮...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 119,897
精华内容 47,958
关键字:

guiweb