猫史档案馆


『P-H专场』大家对GUI编程有怎样的看法

用户:Python-happyyyyPython-happyyyy查看:316 回复:14 评论:57 创建时间:2021-07-09T16:47:35


大家对GUI编程有怎样的看法?

评论区留言

提前声明:勿引战,请文明交流

其他的就不一一再说了


回复

上一页第 1 页 / 共 1 页下一页
该账号已被封禁该账号已被封禁

easygui的话估计我还是推荐tkinter

点赞0


评论

当然easygui也不错,容易上手,tkinter用法更多更高级


Python-happyyyyPython-happyyyy

我个人是认为GUI编程很烦

所以才发这个想看看有没有和我一样的人

因为如果做一个大项目,仅仅函数占了很多,再加上GUI的布局,功能什么什么的

这个项目就会很长

找BUG会有些困难

点赞2


评论

当然也有试过其他语言,结果也是一样

讨厌GUI的+1

我觉得语言最简单莫过于设计ui了

正因为简单,代码才会长

长而简单,我最喜欢!

但是看着很乱……

简单是简单,一行一setting,个性配置,但行数让人怀疑人生。。。(短而精髓,我最喜欢

你这不谐音呀(特殊关注点doge

狗头喵.jpg

咋了,叫我

就是想赞一下

e。


lsk666666lsk666666

讨厌GUI,因为GUI编程太麻烦,代码不简洁

真要说那个好的话,python的GUI算是最舒服的,还比较简洁,java的javafx也还好,但是java的awt和swing是真的拉

点赞2


评论

对fx还行

你学过java?

不然哩

《关于我来编程猫朋友连我学过Java都不知道这档事》

az,我该说什么?

力挺PythonGUI

PyQt真心不戳

但c++原生qt方言。。。那个。。。

pyside一堆函数名,花里胡哨,弄得人眼花缭乱,到现在还是很难独立搞一个ui得借助qt creator,我感觉tkinter比pyside整洁和方便和简单呢

我个人特别喜欢qt的命名风格,感觉很接近自然语言,qtcreator一般不用的,感觉会大大限制创造力

《大爱Qt》

Qt比起TK、WX、kivy开发体验优势明显的主要是样式逻辑分离,用css写样式也对前端的很友好

az

有的人看看tk就走了,有的人遇到了tk爱上了tk,决定真正入坑在这里(狗头

我选择入坑qt

道不同,不相逢(dogeeeee.png+滑稽.jpg

话说我已经开始看jfx教程了,第一眼就爱了(

我写过一个jfx的音乐播放器,你要不?

要诶要诶QwQ

我也要awa


lsk666666lsk666666

喵

点赞0


评论

???

真神奇一个字也可以发帖(doge.png


liblsk_so_1liblsk_so_1

某人的小号过来顶一下~

点赞0


评论

大号过来认个小号~

问号默默走过 ?

lsk还有小号doge

?‪‪

我新注册的


Albert钟Albert钟

尽量避免写非原生GUI,能用Html绝不用GUI。Python写GUI最舒服,但还是没有html简介(个人喜欢Qt),Js的electron看了想吐,C++的任何UI类库或方言都让人怀疑人生,其他语言的不了解。

点赞3


评论

《简 介》

简洁。。。。

???????


Python-happyyyyPython-happyyyy

一顶15评论。。。

点赞0


评论

20几。。。

1个月前唉


伴雪纷飞伴雪纷飞

其实嘛,py的ui也不是传说中的十全十美,网上有句话叫:Python永远要依靠别的库来扩展自身

对呀看看不管是wx还是qt都需要

tkinter入坑多年早就感觉不行了,想转

但是qt第一点复杂

第二点(感觉描述不清)用过tkinter都知道tk有ttk,tix,对比起来...

wx没啥说的(实则根本不熟)

 

个人感觉,用web框架,html5渲染界面(实则本人还是用tkinter)

点赞0


评论

啥东西,我之前写了啥东西(

hhh


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

感觉python的GUI还行,就是有些不支持,还有些莫名其妙的问题, shequ.codemao.cn/community/393044 嘿嘿嘿

点赞1


评论

居然乘机打广告


编码已破译编码已破译

Python的GUI繁琐又枯燥,一个计算机最少几十行,但是运行起来很舒服

点赞0


评论


立白uzP4立白uzP4

话说,GUI是个什么鬼

点赞0


评论

所以你就是过来打广告的。。。。

我不是来打广告的

我真的不懂GUI是个什么鬼

图 形 用 户 界 面

是的()()


lsk666666lsk666666

package javafxtest;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class Main extends Application{
private boolean isPlaying = true;
private int pointer = 0;
private List<MediaPlayer> medias = new ArrayList<MediaPlayer>();
private MediaView mediaView = new MediaView();
private Properties properties;

private class OverListener implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub
// System.out.println("Done.");
// isPlaying = false;
System.out.println("Done.");
System.out.println(pointer);
System.out.println();
load();
}

}

@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
// Media pick = new Media("file:////D://playerTest.wav"); // replace this with your own audio file
// MediaPlayer player = new MediaPlayer(pick);
// player.setOnEndOfMedia(new OverListener());
// // A喵 a mediaView, to display the media. Its necessary !
// // This mediaView is a喵ed to a Pane
loadProperties();
loadMedias();
// A喵 to scene
//mediaView.setMediaPlayer(medias.get(pointer));
Button pause = new Button();
pause.setGraphic(new ImageView("file:////D://pause.jpg"));
pause.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("Pause button clicked!");
changePlayState(!isPlaying);
}
});
Group root = new Group(mediaView);
StackPane stackPane = new StackPane();
stackPane.getChildren().a喵(root);
stackPane.getChildren().a喵(pause);
Scene scene = new Scene(stackPane, 500, 200);
// Show the stage
primaryStage.setTitle("Media Player");
primaryStage.setScene(scene);
primaryStage.show();
medias.get(0).play();
isPlaying = true;
}
@Override
public void stop() throws Exception {
// TODO Auto-generated method stub
// FileWriter writer = new FileWriter("D://player.txt");
// writer.append(Integer.toString(pointer));
// writer.append("\r\n");
// writer.close();
System.out.println("stop invoked.");
properties.setProperty("player.pointer", Integer.toString(pointer));
saveProperties();
super.stop();
}
private void loadMedias() throws Exception{
pointer = Integer.parseInt(properties.getProperty("player.pointer"));
System.out.println("Loaded Pointer: "+pointer);
double volume = Double.parseDouble(properties.getProperty("player.volume"));
System.out.println("Loaded volume: "+volume);
String dirString = properties.getProperty("player.dir");
File dir = new File(dirString);
for(File song : dir.listFiles()) {
String songPath = dirString+"/"+song.getName();
Media media = new Media("file:////"+songPath);
MediaPlayer player = new MediaPlayer(media);
player.setOnEndOfMedia(new OverListener());
player.setVolume(volume);
medias.a喵(player);
System.out.println("Loaded music: "+songPath);
}
MediaPlayer firstPlayer = medias.get(pointer);
mediaView.setMediaPlayer(firstPlayer);
System.out.println(firstPlayer.getMedia().getSource());
}
private void loadProperties() throws Exception{
properties = new Properties();
InputStream is = new FileInputStream("D://player.properties");
properties.load(is);
is.close();
}
private void saveProperties() throws Exception{
OutputStream os = new FileOutputStream("D://player.properties");
properties.store(os, "");
os.close();
}
private void load() {
pointer++;
if(pointer > medias.size()) {
pointer = 0;
}
MediaPlayer player = medias.get(pointer);
System.out.println("Play Music: "+player.getMedia().getSource());
mediaView.setMediaPlayer(player);
player.play();
}
private void changePlayState(boolean state) {
MediaPlayer player = medias.get(pointer);
if(state) {
System.out.println("Change state: pause.");
player.pause();
}else {
System.out.println("Change state: play.");
player.play();
}
isPlaying = state;
}
public static void main(String[] args) {
launch(args);
}
}

点赞1


评论

你们要的jfx播放器,就是写着玩的,也没怎么优化,启动内存直接爆炸

谢谢哦

我谢谢你。。。

谢谢(⌒▽⌒)


Python-happyyyyPython-happyyyy

顶 

点赞0


评论


伴雪纷飞伴雪纷飞

挖出来瞧瞧

点赞0


评论