ইলেক্ট্রন অ্যাপ থেকে মেনুবার সরান ar


113

আমি কীভাবে আমার ইলেক্ট্রন অ্যাপ্লিকেশনগুলি থেকে এই মেনু-বারটি সরিয়ে দেব:

মেনু বার

এছাড়াও এটি বলেছে "হ্যালো ওয়ার্ল্ড" (এটি কারণ আমি প্রিল-বিল্ট ইলেক্ট্রন ডাউনলোড করেছি এবং অ্যাপ্লিকেশনটি প্যাকেজ করার পরে তা চলে যাবে?) আমি এইগুলি এইচটিএমএলে কোড করি নি, সুতরাং এটি কীভাবে বের করা যায় জানি না! -

উত্তর:


158

আপনি আপনার উইন্ডোতে ব্যবহার w.setMenu(null)বা সেট করতে পারেন frame: false(এটি নিকট, নূন্যতম এবং সর্বাধিক বিকল্পগুলির জন্য বোতামগুলি সরিয়ে দেয়)। দেখুন setMenu () বা BrowserWindow () । এই থ্রেডটিও পরীক্ষা করে দেখুন


ইলেক্ট্রন এখন ব্যবহারের পরিবর্তে অ্যাপ্লিকেশন মেনু অপসারণ করতে win.removeMenu()( v5.0.0 এ যুক্ত হয়েছে ) win.setMenu(null)


ইলেক্ট্রন 7.1.x মনে হয় এমন একটি বাগ রয়েছে যেখানে win.removeMenu()কাজ করে না। একমাত্র কর্মক্ষেত্রটি ব্যবহার করাMenu.setApplicationMenu(null)


4
frame: falseএটা আমার জন্য।
mwilson

5
fww removeMenu()লিনাক্স এবং উইন্ডোজ কেবল
বসন্ত

উইন্ডো দ্বারা খোলা উইন্ডো সম্পর্কে কী? মেনুতে থাকা একটি ইতিমধ্যে খোলা উইন্ডোতে () খুলুন?
মাইকেল

4
ইলেক্ট্রন 7.1.1 একটি বিষয় যেখানে রয়েছে setMenuএবং removeMenuআর কাজ করে না লিংক
পি Fuster

4
আসল বা সম্পাদনা সমাধানগুলির কোনওটিই কাজ করে না। এটির আর উত্তর হওয়া উচিত নয়।
Tyguy7

69

এটা ব্যবহার কর:

mainWindow = new BrowserWindow({width: 640, height: 360})
mainWindow.setMenuBarVisibility(false)

তথ্যসূত্র: https://github.com/electron/electron/issues/1415

আমি চেষ্টা করেছি mainWindow.setMenu(null), কিন্তু কাজ হয়নি।


4
আমি mainWindow.setMenu(null)ইলেক্ট্রন 5.0.2 দিয়ে চেষ্টা করেছি এবং এটি আমার পক্ষে কাজ করে না। আমি কেন এটিকে সর্বত্র ব্যবহার করার পরামর্শ দিচ্ছি তা নিশ্চিত নই এবং আমি যদি একমাত্র এমন ব্যক্তি যা ভুলভাবে কিছু করছে wand আপনার ব্যবহারের পরামর্শ, setMenuBarVisibilityমেনু বারের দৃশ্যমানতা সরিয়ে দিলেও এটি পুরোপুরি সরিয়ে দেয় না। Altচাবি টিপে এটি ফিরিয়ে আনা যায় ।
আর্টিয়াম

4
এফডাব্লুআইডাব্লু: নির্বাচন .0.০. এক্স সহ আমার পক্ষে নয় .setMenu(null)বা .removeMenu()কাজও করেনি । .setMenuBarVisibility(false)মেনু বারটি সরিয়ে দেয় এবং Altকী .setAutoHideMenuBar(true)চালানো হলেই কাজ করে ।
বব ন্যাডলার

4
আর্ক লিনাক্সে +1, setMenu(null)কাজ করে না, তবে setMenuBarVisibility(false)আশানুরূপভাবে কাজ করে ( বার্তাটি আরটিয়াম হিসাবে উল্লিখিত চাপ দিয়ে আর ফিরিয়ে আনা যায় নাalt )।
আমির এ। শাবানী

এটি আমার জন্য কাজ করা সমাধান। যে উত্তরটি সঠিক হিসাবে চিহ্নিত হয়েছে তা উবুন্টু 18.04, ইলেক্ট্রন v6.0.9
খ্রিস্টোফার

দুর্দান্ত! মেনু বারটি না দেখিয়ে কীবোর্ড শর্টকাটগুলি অন্তর্ভুক্ত করার জন্য আমার একটি সহজ উপায় প্রয়োজন। অসংখ্য ধন্যবাদ!
আনিস আর

28

ইলেক্ট্রন 7.1.1 এর জন্য, আপনি এটি ব্যবহার করতে পারেন:

const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(false)

6
আমার জন্য আপডেট করুন সম্পাদনা: Menu.setApplicationMenu(null)কাজ 7.1.2অন্যান্য সমাধানের আমার জন্য কাজ করেন নি!
টেসাভওয়ালটিজজন

4
এটি 7.1.4 এও কাজ করে। এই সমস্যাটি প্রত্যেকে সমাধানে পৌঁছাতে সক্ষম হবে তা নিশ্চিত করার জন্য দয়া করে সঠিক উত্তরটি আপডেট করুন।
এমিলিও নুমাজাকি

4
@ ওপ - স্ট্যাক ওভারফ্লোতে আপনাকে স্বাগতম এবং দুর্দান্ত উত্তরের জন্য ধন্যবাদ! একটি নোট - দয়া করে এমএস ওয়ার্ডের মতো অন্যান্য প্রোগ্রামগুলি থেকে উদ্ধৃতি চিহ্নগুলি অনুলিপি এবং পেস্ট করার সময় সাবধান হন। 'ইলেক্ট্রন' এর মতো বিন্যাসিত উদ্ধৃতি বেশিরভাগ ক্ষেত্রে 'ইলেক্ট্রন' এর মতো ফর্ম্যাট কোটগুলির সমান নয়।
sfarbota

4
ইলেক্ট্রন 7.19 এ আমার জন্য কাজ করে এটি অবশ্যই সঠিক উত্তর হিসাবে আপডেট হওয়া উচিত
ডার্ক্রেন্ডার

4
এই উত্তরটি আমার জন্য বৈদ্যুতিন v10.1.1 এর জন্য কাজ করেছিল। ধন্যবাদ :)
মণিন্দর সিং

11

মেনুটি লুকানো বা স্বয়ংক্রিয়ভাবে লুকানো থাকতে পারে ( স্ল্যাক বা ভিএস কোডের মতো - আপনি মেনুটি প্রদর্শন / আড়াল করতে Alt টিপতে পারেন )।

প্রাসঙ্গিক পদ্ধতি:

---- win.setMenu (মেনু) - উইন্ডোটির মেনু বার হিসাবে মেনুটিকে সেট করে, এটিকে নালিতে সেট করা মেনু বারটি সরিয়ে ফেলবে। ( এটি পুরোপুরি মেনু সরিয়ে ফেলবে )

mainWindow.setMenu(null)


---- win.setAutoHideMenuBar (লুকান) - উইন্ডো মেনু বারটি স্বয়ংক্রিয়ভাবে নিজেকে আড়াল করা উচিত কিনা তা নির্ধারণ করে। একবার সেট মেনু বারের শুধুমাত্র হবে
দেন
ব্যবহারকারীরা যখন চাপুন একক Alt কী

mainWindow.setAutoHideMenuBar(true)

সূত্র: https://github.com/Automattic/simplenote-electron/issues/293

নমুনা হিসাবে ফ্রেমবিহীন উইন্ডো তৈরির পদ্ধতিও রয়েছে:

(কোনও ক্লোজ বাটন কিছুই নেই। আমরা যা চাই তা হতে পারে (আরও ভাল নকশা))

const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()

https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows

ডক: https://electronjs.org/docs/api/frameless-window

সম্পাদনা: (নতুন)

win.removeMenu() লিনাক্স উইন্ডোজ উইন্ডোটির মেনু বারটি সরান।

https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows

Win.setMenu (নাল) ব্যবহার না করে অ্যাপ্লিকেশন মেনুগুলি সরানোর জন্য win.removeMenu () যুক্ত করা হয়েছে

যা ভি 5 থেকে যোগ করা হয়েছে:

https://github.com/electron/electron/pull/16570 p

https://github.com/electron/electron/pull/16657 p

ইলেক্ট্রন ভি 7 বাগ

ইলেক্ট্রন 7.1.1 এর Menu.setApplicationMenuপরিবর্তে ব্যবহার করুনwin.removeMenu()

এই থ্রেড অনুযায়ী:
https://github.com/electron/electron/issues/16521 /

এবং বড় নোটটি: ব্রাউজার উইন্ডো তৈরি করার আগে আপনাকে এটি কল করতে হবে ! নাকি কাজ হবে না!

const {app, BrowserWindow, Menu} = require('electron')

Menu.setApplicationMenu(null);

const browserWindow = new BrowserWindow({/*...*/});

আপডেট (ব্রাউজার উইন্ডো নির্মাণে অটোহাইডমেনুবার সেট করা)

@ কেসিআরপি মন্তব্য দ্বারা! আমরা সম্পত্তি এবং অনেকগুলি কনস্ট্রাক্টরে সেট করতে পারি

এটি এখন পর্যন্ত ইলেকট্রনের সর্বশেষতম স্থিতিশীল সংস্করণে উপলভ্য যা 8.3!
তবে খুব পুরানো সংস্করণগুলিতে আমি ভি 1, ভি 2, ভি 3, ভি 4 জন্য পরীক্ষা করে দেখেছি!
এটি সব সংস্করণে আছে!

এই লিঙ্কটি অনুসারে
https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md

এবং v8.3 এর জন্য
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions

ডক লিঙ্কটি https://www.electronjs.org/docs/api/browser-window#new- ব্রাউজার উইন্ডোওপশন

বিকল্পটির জন্য ডক থেকে:

অটোহাইডমেনুবার বুলিয়ান (alচ্ছিক) - অল্ট কীটি চাপ না দেওয়া থাকলে মেনু বারটি স্বয়ংক্রিয়ভাবে আড়াল করে। ডিফল্ট মিথ্যা।

এটি চিত্রিত করার জন্য এখানে একটি স্নিপেট:


let browserWindow = new BrowserWindow({
    width: 800,
    height: 600,
    autoHideMenuBar: true // <<< here
})

4
সেটআউটহাইডমেনুবার অবচিত হয়েছে
মিস্টার স্যারকোড

নীচে এডমার দ্বারা উত্তরটি একটি আরও ভাল সংস্করণ, মেনুটিকে স্বয়ংক্রিয়ভাবে লুকানোর জন্য সর্বশেষ কোড
মিস্টার সিরকোড

4
ইলেকট্রন 8.2.5 ইন (আমি যে সন্দেহ পূর্ববর্তী সংস্করণে উপস্থিত) এটিকে সংজ্ঞায়িত করতে সম্ভব, যে মেনু বারের স্বয়ংক্রিয় লুকানো থাকা উচিত BrowserWindowতাই মত কন্সট্রাকটর: new BrowserWindow({autoHideMenuBar: true})। এবং, যাইহোক, এই উত্তরের জন্য আপনাকে ধন্যবাদ। এটি আমার কাছে সম্ভবত সবচেয়ে সম্পূর্ণ বলে মনে হচ্ছে (ধারনাগুলি পদ্ধতিগুলি এখনও বিদ্যমান এবং অবহেলিত নয়)।
কেসিআরপি

@ কেসিপিআর আপনার উত্তরের জন্য আপনাকে ধন্যবাদ! আমি এই প্রতিফলিত উত্তর আপডেট!
মোহাম্মদ আল্লাল

@ মোহাম্মদআলাল, শীতল! আপনাকে ধন্যবাদ, আমি আনন্দিত আপনি আমার মন্তব্য দরকারী বিবেচনা। আপনার অতিরিক্ত গবেষণা এবং আপনি যে ফলাফল ভাগ করেছেন তার জন্য এবং আপনাকেও ধন্যবাদ জানাই।
কেসিআরপি

9

আপনি যখন আপনার অ্যাপ্লিকেশনটি প্যাকেজ করবেন তখন ডিফল্ট মেনুটি আর থাকবে না, যদি এটি আপনাকে বিকাশের সময় setMenu(null)বাগিয়ে তুলছে তবে আপনি @ টনিভিনসেন্টের পরামর্শ অনুসারে ব্রাউজার উইন্ডোতে কল করতে পারেন ।


অ্যাপ্লিকেশনটির প্যাকেজিং উল্লেখ করার জন্য ধন্যবাদ ডিফল্ট মেনুটি সরিয়ে ফেলবে। আমি সেই নির্দিষ্ট পয়েন্টটি নিয়ে ভাবছিলাম।
রডদেবাস

9

.0.০.০ হিসাবে, উপরের সমাধানগুলির বেশিরভাগ আর কাজ করে না। BrowserWindow.setMenu()দ্বারা প্রতিস্থাপন করা হয়েছে Menu.setApplicationMenu(), যা এখন সমস্ত উইন্ডোতে মেনু পরিবর্তন করে।setMenu(), removeMenu()আর কিছুই করবে না, যা ডক্সে এখনও উল্লিখিত রয়েছে।

setAutoHideMenuBar()এখনও কাজ করে তবে আপনি যদি হটকি সংশোধক হিসাবে আল্ট ব্যবহারের পরিকল্পনা করেন তবে তা উপদ্রব হতে পারে। মেনুটি দৃশ্যমান হয়ে গেলে আপনাকে পুনরায় মেনুটি লুকানোর জন্য উইন্ডো থেকে দূরে ক্লিক করতে হবে (আলগা ফোকাস)।

যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক উইন্ডো থাকে তবে আপনি প্রতিটি উইন্ডোতে আলাদাভাবে মেনু সেট / অপসারণ করতে পারবেন না। মেনু অপসারণের একমাত্র উপায় হ'ল ফ্রেমহীন উইন্ডো পদ্ধতির ব্যবহার। আমার বর্তমান প্রয়োগে আমি যা চাই তা হ'ল, তবে সব ক্ষেত্রেই ভাল সমাধান নয়।


আপনাকে ধন্যবাদ, এটি কেবলমাত্র 7.0 সাল থেকে কাজ করে! ডক্স / চেঞ্জলগস / ইত্যাদিতে এর কোনও উল্লেখ আছে কি?
rvighne

গিথুব প্রকল্পের লিঙ্কে একটি সমস্যা খোলা আছে । জানেন না এটি অবচয় বা বাগের পরিকল্পনা করা হয়েছিল কিনা।
পি ফুস্টার

7
@"electron": "^7.1.1" : 

mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;

ব্রাউজারের মেনু ছাড়াই প্রত্যাশার মতো কাজ করা।


4
(ইলেক্ট্রন) 'সেটআউটহাইডমেনুবার ফাংশন' অবনতিযুক্ত এবং সরানো হবে। পরিবর্তে 'অটোহাইডমেনুবার সম্পত্তি' ব্যবহার করুন। @ "ইলেক্ট্রন": "^ 7.1.1": মূল উইন্ডো = নতুন ব্রাউজার উইন্ডো ({উচ্চতা: 500, প্রস্থ: 800;); mainWindow.autoHideMenuBar = সত্য;
রাচুরি

4

এই সমস্যাটির উত্তর অনুসরণ করে , উইন্ডোটি তৈরি Menu.setApplicationMenu(null) হওয়ার আগে আপনাকে অবশ্যই কল করতে হবে


আরে, স্ট্যাক ওভারফ্লোতে আপনাকে স্বাগতম! অন্যান্য উত্তরের লিঙ্কগুলি উত্তরগুলির চেয়ে কমেন্টের মতো আরও উপযুক্ত। এটি কারণ আপনি ব্যবহারকারীর নির্দিষ্ট দৃশ্যে লিঙ্কিত প্রশ্নের উত্তরটি আসলে প্রয়োগ করছেন না।
ডেভিড চপিন

4

এই সমাধানগুলি বাগ আছে। নীচে সমাধানগুলি ব্যবহার করার সময়, উইন্ডোজগুলি বন্ধ হতে দেরি করে।

Menu.setApplicationMenu(null),
&&
const updateErrorWindow = new BrowserWindow({autoHideMenuBar: true});

আমি নীচে সমাধান ব্যবহার করেছি। এটি আপাতত ভাল।

const window= new BrowserWindow({...});
window.setMenuBarVisibility(false);




1

ব্রাউজার উইন্ডো তৈরি করার সময় অটোহাইডমেনুবারকে সত্যে সেট করুন

mainWindow = new BrowserWindow({
    autoHideMenuBar: true,
    width: 1200,
    height: 800
})

ইলেক্ট্রন ভি 8-তে কাজ করেছেন, ধন্যবাদ
মাসউদ তাহমাসেবি


0

setMenu(null);সেরা উত্তর, autohidemenuঅ্যাপ্লিকেশন শুরুতে প্রদর্শিত হবে


    function createWindow(){
        const win = new BrowserWindow({
            width: 1500,
            height: 800,
            webPreferences:{
                nodeIntergration: true
            }
        });
        win.setMenu(null);
    win.loadFile("index.html");
    }
    app.whenReady().then(createWindow);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.